【问题标题】:Pyspark adding additional double quotes in array at saving timePyspark 在数组中添加额外的双引号以节省时间
【发布时间】:2021-11-15 14:27:26
【问题描述】:

我有一个 Spark 3.x 的小型集群设置。我已经阅读了一些数据,转换后,我必须将其保存为 JSON。但我面临的问题是,在数组类型的列中,Spark 在编写为 json 文件时会添加额外的双引号。 样本数据框数据

我正在使用以下命令将此数据帧保存为 JSON

df.write.json("Documents/abc")

保存的输出如下

最后,架构信息如下

【问题讨论】:

    标签: json apache-spark pyspark


    【解决方案1】:

    字符串数组的元素在数据中包含双引号,例如第一个元素是"Saddar Cantt, Lahore Punjab Pakistan" 而不是Saddar Cantt, Lahore Punjab Pakistan。您可以在使用 transform 和 replace 编写 json 之前从字符串中删除多余的双引号:

    df.withColumn("ADDRESS", F.expr("""transform(ADDRESS, a -> replace(a, '"'))""")) \
        .write.json("Documents/abc")
    

    【讨论】:

    • 谢谢,如果我必须删除换行符而不是双引号怎么办。
    • @HafizMuhammadShafiq 你能试试transform(ADDRESS, a -> replace(a, '\n'))吗?
    猜你喜欢
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多