我在Pyspark中有以下数据框:
+----+-------+-----+
|name|subject|score|
+----+-------+-----+
| Tom| math| 90|
| Tom|physics| 70|
| Amy| math| 95|
+----+-------+-----+
我使用了来自 pyspark.sql.functions
的 collect_list
和 struct
函数。
df.groupBy('name').agg(collect_list(struct('subject', 'score')).alias('score_list'))
获取以下数据框
+----+--------------------+
|name| score_list|
+----+--------------------+
| Tom|[[math, 90], [phy...|
| Amy| [[math, 95]]|
+----+--------------------+
我的问题是如何将最后一列
score_list
转换成字符串并将其导出为一个csv文件,看起来像这样:Tom (math, 90) | (physics, 70)
Amy (math, 95)
感谢任何帮助,谢谢。
更新:这里有一个类似的问题,但并不完全相同,因为它直接从string
转到另一个string
。在我的情况下,我想先将string
转换为collect_list<struct>
,然后再将此collect_list<struct>
字符串化。
concat_ws
函数 - 查找重复项。 - pault