Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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
在JSON的情况下,当模式推断留给Spark时,为什么Spark输出nullable=true?_Json_Dataframe_Apache Spark_Jsonschema - Fatal编程技术网

在JSON的情况下,当模式推断留给Spark时,为什么Spark输出nullable=true?

在JSON的情况下,当模式推断留给Spark时,为什么Spark输出nullable=true?,json,dataframe,apache-spark,jsonschema,Json,Dataframe,Apache Spark,Jsonschema,为什么Spark显示nullable=true,而模式未指定,其推理留待Spark处理 // shows nullable = true for fields which are present in all JSON records. spark.read.json("s3://s3path").printSchema() 浏览该类,可以看到StructType的显式nullable设置为true。但我无法理解背后的原因 PS:我的目标是为一个大型JSON数据集(

为什么Spark显示nullable=true,而模式未指定,其推理留待Spark处理

// shows nullable = true for fields which are present in all JSON records.
spark.read.json("s3://s3path").printSchema() 
浏览该类,可以看到StructType的显式nullable设置为true。但我无法理解背后的原因

PS:我的目标是为一个大型JSON数据集(<100GB)推断模式,并想看看Spark是否提供了定制map reduce作业的能力,或者是否需要编写一个定制map reduce作业,如本文所述:
. 一个主要部分是我想知道哪些字段是可选的,哪些字段是必需的(w.r.t数据集)。

因为由于检查范围和样本大小的限制,它可能会为模式推断做一个数据样本,在这个样本中,它无法100%推断是否为null。因此,设置为null更安全。那很简单

你能详细说明一下吗。默认情况下sampleRatio是1.0:不确定1.0是指完整的数据还是完整的分区。但是你可以覆盖它。对不起,我有点困惑。默认值为1.0,我不会覆盖它。因此,如果它检查所有记录的模式(假设1.0意味着完整数据),那么它是否能够确定字段是否可以为空?正如您所说,从代码中,它就是它设置的。因为当您不进行100%扫描以进行推断时,将其设置为nullable更安全。然后他们决定,由于大多数人不会100%采样,所以设置应始终如此。