【发布时间】:2015-08-11 04:42:11
【问题描述】:
我有一个 Spark DataFrame,如下所示:
| id | value | bin |
|----+-------+-----|
| 1 | 3.4 | 2 |
| 2 | 2.6 | 1 |
| 3 | 1.8 | 1 |
| 4 | 9.6 | 2 |
我有一个函数f,它接受一个值数组并返回一个数字。我想在上面的数据框中添加一列,其中每一行中新列的值是 f 对于所有具有相同 bin 条目的 value 条目的值,即:
| id | value | bin | f_value |
|----+-------+-----+---------------|
| 1 | 3.4 | 2 | f([3.4, 9.6]) |
| 2 | 2.6 | 1 | f([2.6, 1.8]) |
| 3 | 1.8 | 1 | f([2.6, 1.8]) |
| 4 | 9.6 | 2 | f([3.4, 9.6]) |
由于我需要聚合每个bin 的所有values,我不能使用withColumn 函数来添加这个新列。在用户定义的聚合函数进入 Spark 之前,最好的方法是什么?
【问题讨论】:
标签: apache-spark apache-spark-sql pyspark