che*_*hen 7 python pandas pyspark
我想获取 pyspark 数据框中一列的所有值。我进行了一些搜索,但从未找到有效且简短的解决方案。
假设我想在名为“name”的列中获取一个值。我有一个解决方案:
sum(dataframe.select("name").toPandas().values.tolist(),[])
Run Code Online (Sandbox Code Playgroud)
它有效,但效率不高,因为它转换为熊猫然后展平列表......有没有更好和更短的解决方案?
SMa*_*MaZ 11
下面的选项将提供比sum.
使用 collect_list
import pyspark.sql.functions as f
my_list = df.select(f.collect_list('name')).first()[0]
Run Code Online (Sandbox Code Playgroud)
使用 RDD:
my_list = df.select("name").rdd.flatMap(lambda x: x).collect()
Run Code Online (Sandbox Code Playgroud)
我不确定,但在我的压力测试中,collect_list表现更好。如果有人可以确认会很棒。
| 归档时间: |
|
| 查看次数: |
16469 次 |
| 最近记录: |