如何使用Spark在Scala中的DataFrame
中获取不同(字符串和数字)类型列的最大值?
我说这是我的数据
+----+-----+-------+------+
|name|value1|value2|string|
+----+-----+-------+------+
| A| 7| 9| "a"|
| A| 1| 10| null|
| B| 4| 4| "b"|
| B| 3| 6| null|
+----+-----+-------+------+
并且期望的结果是:
+----+-----+-------+------+
|name|value1|value2|string|
+----+-----+-------+------+
| A| 7| 10| "a"|
| B| 4| 6| "b"|
+----+-----+-------+------+
pandas中是否有类似apply(max,axis=0)
的函数,还是我必须编写UDF?
我可以做的是df.groupBy("name").max("value1")
,但我连续执行了两次max
Sequence
max()
功能。
快速解决问题的任何想法?
答案 0 :(得分:2)
使用此
df.groupBy("name").agg(max("value1"), max("value2"))