Spark 3.0
我运行了代码df.select("Name").collect()
,并在下面收到了此输出。我想将结果放在下面的列表中。我尝试在末尾添加[0],但这没用。
Row(Name='Andy')
Row(Name='Brandon')
Row(Name='Carl')
expected outcome = ['Andy','Brandon','Carl']
答案 0 :(得分:2)
使用 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']
答案 1 :(得分:1)
您可以使用rdd。
df.select('Name').rdd.map(lambda x: x[0]).collect()
['Andy', 'Brandon', 'Carl']