【发布时间】:2020-12-30 09:41:43
【问题描述】:
我的 Pyspark 数据框如下所示。我必须从 pyspark 代码中删除按功能分组以提高代码的性能。我必须对 100k 数据执行操作。
[初始数据]
创建数据框
df = spark.createDataFrame([
(0, ['-9.53', '-9.35', '0.18']),
(1, ['-7.77', '-7.61', '0.16']),
(2, ['-5.80', '-5.71', '0.10']),
(0, ['1', '2', '3']),
(1, ['4', '5', '6']),
(2, ['8', '98', '32'])
], ["id", "Array"])
使用此代码产生预期的输出。
import pyspark.sql.functions as f
df.groupBy('id').agg(f.collect_list(f.col("Array")).alias('Array')).\
select("id",f.flatten("Array")).show()
我必须实现这种格式的输出。上面的代码给了我这个输出。我必须通过删除 groupby 函数来达到同样的目的。
+---+-------------------------------+
|id |flatten(Array) |
+---+-------------------------------+
|0 |[-9.53, -9.35, 0.18, 1, 2, 3] |
|1 |[-7.77, -7.61, 0.16, 4, 5, 6] |
|2 |[-5.80, -5.71, 0.10, 8, 98, 32]|
+---+-------------------------------+
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql