Почему Spark выводит nullable = true, если вывод схемы оставлен Spark, в случае JSON? - PullRequest
1 голос
/ 25 апреля 2020

Почему Spark показывает nullable = true , если схема не указана и ее вывод оставлен для Spark?

// shows nullable = true for fields which are present in all JSON records.
spark.read.json("s3://s3path").printSchema() 

Пройдя через класс JsonInferSchema, можно увидеть, что для StructType явно устанавливается значение nullable true . Но я не могу понять причину этого.

PS: Моя цель состоит в том, чтобы вывести схему для большого набора данных JSON (<100 ГБ), и я хотел посмотреть, предоставляет ли Spark такую ​​возможность или придется напишите пользовательскую работу по уменьшению карты, как выделено в статье: <a href="https://openproceedings.org/2017/conf/edbt/paper-62.pdf" rel="nofollow noreferrer"> Вывод схемы для массива JSON Наборы данных . Одна важная часть - я хочу знать, какие поля являются необязательными, а какие - обязательными (в отношении набора данных).

1 Ответ

1 голос
/ 25 апреля 2020

Потому что он может сделать выборку данных для вывода схемы, в которой он не может на 100% сделать вывод, равен нулю или нет, из-за ограниченной области проверки, размера выборки. Следовательно, безопаснее установить на ноль. Так просто.

...