Могу ли я сообщить spark.read.json, что мои файлы сжаты с помощью gzip?

У меня есть ведро s3 с почти 100 КБ файлов JSON, сжатых gzip.

Эти файлы называются [timestamp].json вместо более разумного [timestamp].json.gz.

У меня есть другие процессы, которые их используют, поэтому переименование - не вариант, а их копирование - еще менее идеальный вариант.

Я использую spark.read.json([pattern]) для чтения этих файлов. Если я переименую имя файла, чтобы оно содержало .gz, это работает нормально, но, хотя расширение просто .json, их нельзя прочитать.

Есть ли способ узнать Spark, что эти файлы заархивированы?

9
0
9 417
1

Ответы 1

SparkSession может напрямую читать сжатый файл json, вот так:

val json=spark.read.json("/user/the_file_path/the_json_file.log.gz") json.printSchema()

Да, я знаю, но похоже, что сжатие следует из имени файла. файлы, заканчивающиеся только на json или .json.gzip, похоже, не работают при использовании spark.read.json(FILENAME)

Hans 21.01.2021 15:56

Другие вопросы по теме