Spark:分区.txt.gz文件并转换为镶木地板

时间:2018-06-05 12:45:10

标签: scala apache-spark

我需要将文件夹中的所有文本文件转换为镶木地板。我想知道我是否需要先敲诈它们。 另外,我想将每个文件分成100个部分。 这就是我到目前为止所做的:

sc.textFile("s3://bucket.com/files/*.gz").repartition(100).toDF()
    .write.parquet("s3://bucket.com/parquet/")

这是对的吗?我错过了什么吗? 感谢。

1 个答案:

答案 0 :(得分:1)

您无需单独解压缩文件。直接读取gzip文件的唯一问题是您的读取不会被并行化。这意味着,无论文件大小如何,每个文件只能获得一个分区,因为gzip不是可拆分压缩编解码器。

如果单个文件大于特定大小(2GB?),您可能会遇到问题,因为Spark的分区大小有一个上限。

除此之外,您的代码在功能上看起来还不错。