У меня есть ведро s3 с почти 100 КБ файлов JSON, сжатых gzip.
Эти файлы называются [timestamp].json
вместо более разумного [timestamp].json.gz
.
У меня есть другие процессы, которые их используют, поэтому переименование - не вариант, а их копирование - еще менее идеальный вариант.
Я использую spark.read.json([pattern])
для чтения этих файлов. Если я переименую имя файла, чтобы оно содержало .gz
, это работает нормально, но, хотя расширение просто .json
, их нельзя прочитать.
Есть ли способ узнать Spark, что эти файлы заархивированы?
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)