组的多个列上的Spark Dataframe最大值

时间:2017-03-15 08:41:08

标签: scala apache-spark spark-dataframe

如何使用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()功能。

快速解决问题的任何想法?

1 个答案:

答案 0 :(得分:2)

使用此

df.groupBy("name").agg(max("value1"), max("value2"))