【问题标题】:Is it possible to write json data to a file in azure blob storage without converting it to string?是否可以将 json 数据写入 azure blob 存储中的文件而不将其转换为字符串?
【发布时间】:2023-03-31 07:05:02
【问题描述】:

我正在使用 azure databricks 开发一个项目,我需要将转换后的 JSON 格式数据写入文件 (.json),然后再写入 DB。

我已经尝试过使用数据框、rdd 选项。我尝试过的一些sn-ps

df.collect.map( line => {
      //transformation logic to create json

      (field1,field2,json);   

})

var dataframe = processedList.toList.toDF("f1","f2","json");
dataframe .repartition(1).write.mode("overwrite").json(path)

此代码工作正常,但作为 json 数据的“值”被视为/写入为字符串,因为它包含所有转义字符等。不能直接使用 JsonObject,因为数据框不支持它。

那么有没有办法在不转换为字符串的情况下写入文件?

【问题讨论】:

    标签: json scala apache-spark apache-spark-sql databricks


    【解决方案1】:

    json 列的类型是什么?它可能是string,因此Spark 将其视为字符串文字。试试

    df.withColumn(to_json("json").alias("json")).write.json(path)
    

    【讨论】:

    • 感谢您的回复。我尝试了这个解决方案,但是由于我的数据框列是您正确指出的字符串类型,因此由于数据类型不匹配,它会给出错误为“”。无法解析 'structstojson(value)':输入类型字符串必须是结构,结构数组或映射或映射数组。有没有办法创建不同类型的数据框列,因为我的 json 没有固定格式。有什么建议吗?
    猜你喜欢
    • 2019-10-05
    • 1970-01-01
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    相关资源
    最近更新 更多