【问题标题】:Create an column of empty array with pyspark使用 pyspark 创建一列空数组
【发布时间】:2021-10-14 19:46:02
【问题描述】:

我想在现有数据框中添加一个包含空数组/列表的列,如下所示:

col1 col2
1 [ ]
2 [ ]
3 [ ]

稍后填写。

我尝试了以下方法:

df = df.withColumn("col2", F.array(None))

或者先创建一个空列:

df= df.withColumn("empty_col", F.lit(None).cast(T.StringType()))
df= df.withColumn("col2", F.array(F.col("empty_col")))

但最新的给出了一个包含空字符串的数组,而不是空字符串

编辑:

它适用于:

df = df.withColumn("col2", F.array().cast("array<string>"))

【问题讨论】:

    标签: python-3.x pyspark


    【解决方案1】:

    只需在您的第一种方法中删除 None,所以

    df = df.withColumn("col2", F.array())
    

    【讨论】:

    • 引发错误:Parquet 数据源不支持数组 数据类型。但是使用: df = df.withColumn("col2", F.array().cast("array")) 它有效!谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    • 2016-05-02
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多