Scala 仅读取JSON的第一级
我有一个包含2级JSON字符串的数据集。下面是我的json的示例:Scala 仅读取JSON的第一级,scala,apache-spark,apache-spark-dataset,Scala,Apache Spark,Apache Spark Dataset,我有一个包含2级JSON字符串的数据集。下面是我的json的示例: "{"field1":"AAA","field2":{"subField1":"000","subField2":"111"},"value":100.0}" 当我使用Spark数据集的read().json()函数解析它时,我得到以下结果: field1, field2, value AAA, [000,111], 100.0 我想找到一种方法来设置数据集读取器,使其只解析JSON的第一级,并给出以下结果: fie
"{"field1":"AAA","field2":{"subField1":"000","subField2":"111"},"value":100.0}"
当我使用Spark数据集的read().json()
函数解析它时,我得到以下结果:
field1, field2, value
AAA, [000,111], 100.0
我想找到一种方法来设置数据集读取器,使其只解析JSON的第一级,并给出以下结果:
field1, field2, value
AAA, {"subField1":"000","subField2":"111"}, 100.0
如何实现这一点?通过明确定义模式,可以轻松实现这一点
val schema = StructType(Array(StructField("field1",StringType,true),StructField("field2",StringType,true),StructField("value",StringType,true)))
val df = spark.read.schema(schema).json("path.json")
df.show(false)