【问题标题】:how to read string of json in pyspark (json string has double double quotation如何在pyspark中读取json字符串(json字符串有双双引号
【发布时间】:2021-11-16 03:17:01
【问题描述】:

我有一个这样的 csv 文件:

"request"
"{""CustomerId"":""1"",""EffectiveTime"":""2021-07-30T12:00""}"
"{""CustomerId"":""2"",""EffectiveTime"":""2021-07-30T13:00""}"

我想得到一个这样的 pyspark 数据框:

CustomerId           EffectiveTime
1                     2021-07-30T12:00
2                     2021-07-30T13:00

虽然pyspark有json_tuple,但是csv文件请求列不是标准的json字符串, 我怎样才能像这样提取 CustomerId 和 EffetiveTime?

df = df.select(F.json_tuple(F.col("request"), "CustomerId", "EffectiveTime"))

我尝试了上面的代码,它得到:

c0    c1
null  null
null  null

谢谢!

【问题讨论】:

  • 格式是不是一模一样?只有 2 列和确切的列名?

标签: json string pyspark tuples


【解决方案1】:

我发现如果我添加双引号作为转义值

df = spark.read.csv(file_path, escape='"', header="true")

然后我可以使用 json_tuple 从中提取 json 字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 2014-09-20
    相关资源
    最近更新 更多