我需要更改一堆文件的压缩格式,并使用相同的子目录名称和文件名输出它们。例如,如果输入如下:
/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来实现这一目标?
答案 0 :(得分:0)
假设您的文件位于hdfs: 如果您的文件是可拆分的,Spark是解密文件的好选择。
但您无法直接将文件(如gunzip)更新到同一位置,因此请将输出写入新位置,然后在删除原始文件后将新文件移至原始位置。
确保在删除文件时使用-skipTrash以提高时间效率。