我有一个s3存储桶,其中包含将近100k压缩的JSON文件。
这些文件称为[timestamp].json
,而不是更明智的[timestamp].json.gz
。
我还有其他使用它们的进程,因此重命名不是一种选择,并且复制它们甚至不太理想。
我正在使用spark.read.json([pattern])
来读取这些文件。如果我将文件名重命名为包含.gz
,则可以正常工作,但是扩展名仅为.json
,无法读取它们。
有什么办法可以告诉Spark这些文件已压缩吗?
答案 0 :(得分:1)
SparkSession可以直接读取压缩的json文件,就像这样:
val json=spark.read.json("/user/the_file_path/the_json_file.log.gz")
json.printSchema()
答案 1 :(得分:0)
是的,您可以将compression
选项发送到spark.read
:
spark.read.option('compression', 'gzip').json(...)