Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 仅读取JSON的第一级_Scala_Apache Spark_Apache Spark Dataset - Fatal编程技术网

Scala 仅读取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

我有一个包含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的第一级,并给出以下结果:

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)