1
Spark을 사용하여 스칼라에서 DataFrame
에있는 서로 다른 (문자열 및 숫자) 유형의 열에 대해 최대 값을 얻으려면 어떻게해야합니까?Spark 그룹의 여러 열에 대한 데이터 프레임
+----+-----+-------+------+
|name|value1|value2|string|
+----+-----+-------+------+
| A| 7| 10| "a"|
| B| 4| 6| "b"|
+----+-----+-------+------+
apply(max,axis=0)
와 팬더처럼 함수가 아니면 내가 UDF를 작성해야합니까 :
하자 그게 내 데이터
+----+-----+-------+------+
|name|value1|value2|string|
+----+-----+-------+------+
| A| 7| 9| "a"|
| A| 1| 10| null|
| B| 4| 4| "b"|
| B| 3| 6| null|
+----+-----+-------+------+
하고 원하는 결과가라고?
내가 할 수있는 것은 df.groupBy("name").max("value1")
이지만 두 행을 수행 할 수 있습니다. max
행에 Sequence
이 작동하지 않습니다. max()
기능에서 작동합니다.
아이디어를 빨리 해결할 수 있습니까?
내가 모든 열을 하드 코딩 할 필요가 없습니다 수있는 방법도 있나요? 모든 열을 통과하는 루프처럼? 'for (col <- df.columns) {df = df.groupBy ("name"). max (col)}'또는 이와 비슷한 것? 번거로운 30 열을 잘못 처리했습니다. –
아, 그리고 그런데 : 물론 콜론 문자열의 문자열 선택은 해당 솔루션에서 고려되지 않습니다. –
'max()'도'agg'의 문자열에서 작동합니다. 하지만 알파벳순으로 최대 값을 취하므로 이름을 'null'로 변경하는 것이 좋습니다. –