【问题标题】:pyspark convert array to string in looppyspark 在循环中将数组转换为字符串
【发布时间】:2021-04-10 20:03:23
【问题描述】:

我有一个包含字符串、整数和数组类型列的 psypark 数据框。我正在尝试为所有列运行 for 循环以检查它们是否是任何数组类型列并将其转换为字符串。

pyspark 数据框中的输出应该包含 int,string 列。

下面的代码将只返回从数组转换为字符串的列。如何包含 else 语句以从数据框中获取非数组类型的剩余列。

dfstring = df.select([(F.col(c).cast('String')).alias(c) for c in df.columns if dict(df.dtypes)[c] == 'array<string>'])

【问题讨论】:

    标签: python apache-spark pyspark apache-spark-sql


    【解决方案1】:

    您可以尝试如下修改列表推导:

    dfstring = df.select([
        (F.col(c).cast('String')).alias(c)
        if 'array' in dict(df.dtypes)[c]
        else F.col(c)
        for c in df.columns 
    ])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-28
      • 2021-04-02
      • 2020-10-31
      • 1970-01-01
      • 1970-01-01
      • 2023-01-10
      • 1970-01-01
      相关资源
      最近更新 更多