【问题标题】:Pyspark - Convert column to list [duplicate]Pyspark - 将列转换为列表
【发布时间】:2020-12-07 17:56:55
【问题描述】:

火花 3.0

我运行了代码df.select("Name").collect(),并在下面收到了此输出。我想把下面的结果放在一个列表中。我尝试在末尾添加 [0],但没有成功。

Row(Name='Andy')
Row(Name='Brandon')
Row(Name='Carl')

expected outcome = ['Andy','Brandon','Carl']

【问题讨论】:

  • 你可以简单地运行:expected_outcome = [a["Name"] for a in df.select("Name").collect() ]

标签: python pyspark


【解决方案1】:

使用 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']

【讨论】:

    【解决方案2】:

    你可以使用rdd。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-27
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多