Spark: разбить файлы .txt.gz и конвертировать в паркет - PullRequest
0 голосов
/ 05 июня 2018

Мне нужно конвертировать все текстовые файлы в папке, которые упакованы в паркет.Интересно, нужно ли мне сначала их убить или нет.Кроме того, я хотел бы разбить каждый файл на 100 частей.Это то, что у меня есть:

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

Это правильно?Я что-то пропустил?Спасибо.

1 Ответ

0 голосов
/ 05 июня 2018

Вам не нужно распаковывать файлы по отдельности.Единственная проблема с чтением файлов gzip напрямую заключается в том, что ваши чтения не будут распараллелены.Это означает, что независимо от размера файла вы получите только один раздел на файл, потому что gzip не является кодеком сжатия с разделением.

Вы можете столкнуться с проблемами, если размер отдельных файлов превышает определенный размер (2 ГБ?), Поскольку существует верхний предел размера раздела Spark.

Кроме того, ваш код выглядит функционально нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...