繁体   English   中英

databricks 中 json 问题的 spark.readstream 和 writestream

[英]spark.readstream and writestream for json issue in databricks

我有一个 json

{
"name": "John",
"age": 30,
"car": "testing"}

我在数据块中有一个代码

struct2 = StructType([StructField("name", StringType(), True), \
StructField("age", IntegerType(), True, None), \
                  StructField("car", StringType(), True, None)])
df2 = spark.readStream.schema(struct2).format('json') \
  .load("abfss://i**********.dfs.core.windows.net/streamjson/")

下一步我开始写入另一个文件夹

df2.select("name","age","car").writeStream.format('json')\
  .option("checkpointLocation", "abfss://****@*****.dfs.core.windows.net/outputstream/jsoncheckpoint3") \
  .start("abfss://***@******.dfs.core.windows.net/streamjsonoutput/")

我在那里放了新文件,我检查了 streamjsonoutput 中的文件,文件如下所示

在此处输入图像描述

谁能指出我做错了什么?

您需要将.option("multiLine", "true")添加到您的spark.readStream中,因为默认情况下,Spark 期望 JSON 文件每行由单独的 JSON 个对象组成,而不是跨越多行(请参阅文档):

df2 = spark.readStream.schema(struct2).option("multiLine", "true") \
  .json("abfss://...")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM