我需要将文件夹中的所有文本文件转换为镶木地板。我想知道我是否需要先敲诈它们。 另外,我想将每个文件分成100个部分。 这就是我到目前为止所做的:
sc.textFile("s3://bucket.com/files/*.gz").repartition(100).toDF()
.write.parquet("s3://bucket.com/parquet/")
这是对的吗?我错过了什么吗? 感谢。
答案 0 :(得分:1)
您无需单独解压缩文件。直接读取gzip文件的唯一问题是您的读取不会被并行化。这意味着,无论文件大小如何,每个文件只能获得一个分区,因为gzip
不是可拆分压缩编解码器。
如果单个文件大于特定大小(2GB?),您可能会遇到问题,因为Spark的分区大小有一个上限。
除此之外,您的代码在功能上看起来还不错。