我想获取 pyspark 数据框中列的所有值。我做了一些搜索,但从未找到有效且简短的解决方案。
假设我想在名为“name”的列中获取一个值。我有一个解决方案:
sum(dataframe.select("name").toPandas().values.tolist(),[])
它可以工作,但效率不高,因为它会转换为 pandas 然后压平列表...是否有更好且简短的解决方案?
以下选项将提供比以下选项更好的性能sum
.
Using collect_list
import pyspark.sql.functions as f
my_list = df.select(f.collect_list('name')).first()[0]
使用RDD:
my_list = df.select("name").rdd.flatMap(lambda x: x).collect()
我不确定,但在我的几次压力测试中,collect_list
提供更好的性能。如果有人能确认的话那就太好了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)