使用spark转换文件压缩格式

时间:2017-03-09 00:11:32

标签: hadoop apache-spark

我需要更改一堆文件的压缩格式,并使用相同的子目录名称和文件名输出它们。例如,如果输入如下:

/user/me/project/2017-3-06/ {part-r-00001.lzo, part-r-00002.lzo, ...}
/user/me/project/2017-3-07/ {part-r-00001.lzo, part-r-00002.lzo, ...}
/user/me/project/2017-3-08/ {part-r-00001.lzo, part-r-00002.lzo, ...}

预期输出应为:

/user/me/project_v2/2017-3-06/ {part-r-00001.lz4, part-r-00002.lz4, ...}
/user/me/project_v2/2017-3-07/ {part-r-00001.lz4, part-r-00002.lz4, ...}
/user/me/project_v2/2017-3-08/ {part-r-00001.lz4, part-r-00002.lz4, ...}

我是否应该使用Spark来实现这一目标?

1 个答案:

答案 0 :(得分:0)

假设您的文件位于hdfs: 如果您的文件是可拆分的,Spark是解密文件的好选择。

但您无法直接将文件(如gunzip)更新到同一位置,因此请将输出写入新位置,然后在删除原始文件后将新文件移至原始位置。

确保在删除文件时使用-skipTrash以提高时间效率。