为什么在 JSON 的情况下,当模式推理留给 Spark 时,Spark 输出 nullable = true?
Why Spark outputs nullable = true, when schema inference left to Spark, in case of JSON?
为什么在未指定架构且其推理留给 Spark 时,Spark 显示 nullable = true?
// shows nullable = true for fields which are present in all JSON records.
spark.read.json("s3://s3path").printSchema()
通过 class JsonInferSchema,可以看到对于 StructType,显式可空设置为 true。但是我无法理解背后的原因。
PS:我的目标是推断大型 JSON 数据集(< 100GB)的模式,并想看看 Spark 是否提供能力或必须编写自定义映射-减少论文中强调的工作:
Schema Inference for Massive JSON Datasets。一个主要部分是我想知道哪些字段是可选的,哪些是必填的(w.r.t 数据集)。
因为它可能会为模式推断做一个数据样本,其中它不能 100% 推断是否为空或不为空,由于检查范围有限,样本大小。因此设置为空更安全。就这么简单。
为什么在未指定架构且其推理留给 Spark 时,Spark 显示 nullable = true?
// shows nullable = true for fields which are present in all JSON records.
spark.read.json("s3://s3path").printSchema()
通过 class JsonInferSchema,可以看到对于 StructType,显式可空设置为 true。但是我无法理解背后的原因。
PS:我的目标是推断大型 JSON 数据集(< 100GB)的模式,并想看看 Spark 是否提供能力或必须编写自定义映射-减少论文中强调的工作: Schema Inference for Massive JSON Datasets。一个主要部分是我想知道哪些字段是可选的,哪些是必填的(w.r.t 数据集)。
因为它可能会为模式推断做一个数据样本,其中它不能 100% 推断是否为空或不为空,由于检查范围有限,样本大小。因此设置为空更安全。就这么简单。