为了账号安全,请及时绑定邮箱和手机立即绑定

Pyspark - 将列转换为列表

Pyspark - 将列转换为列表

尚方宝剑之说 2023-06-06 14:59:10
火花3.0我运行了一个代码df.select("Name").collect(),并在下面收到了这个输出。我想将结果放在下面的列表中。我尝试将 [0] 添加到末尾,但这没有用。Row(Name='Andy')Row(Name='Brandon')Row(Name='Carl')expected outcome = ['Andy','Brandon','Carl']
查看完整描述

2 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

你可以使用 rdd。

df.select('Name').rdd.map(lambda x: x[0]).collect()

['Andy', 'Brandon', 'Carl']


查看完整回答
反对 回复 2023-06-06
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

使用collect_list然后通过访问索引仅获取列表并分配给变量。


Example:


df.show()

#+-------+

#|   Name|

#+-------+

#|   Andy|

#|Brandon|

#|   Carl|

#+-------+


output=df.agg(collect_list(col("name"))).collect()[0][0]


output

#['Andy', 'Brandon', 'Carl']

另一种方法是使用列表理解:


ss=df.select("Name").collect()


output=[i[0] for i in ss]


output

#['Andy', 'Brandon', 'Carl']


查看完整回答
反对 回复 2023-06-06
  • 2 回答
  • 0 关注
  • 231 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信