Hadoop 使用spark转换文件压缩格式

Hadoop 使用spark转换文件压缩格式,hadoop,apache-spark,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/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来实现这一点?

假设您的文件位于hdfs上: 如果您的文件是可拆分的,Spark是解密该文件的一个好选项

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


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

Can?当然只要有一点创造力,你就能做很多事情。这有意义吗?一点也不。你将不得不对Spark进行大量的黑客攻击,但没有真正的好处。假设用“我应该”而不是“我可以”来提问。。是的,正如我所想,Spark可能不是这个特定任务的最佳选择。顺便说一句,有没有实现这一点的建议工具?:)就我个人而言,我想看看或类似的批处理/工作流管理系统。对,这就是我们想要做的。然而,挑战在于如何保留相同的文件名和相似的文件路径。请尝试使用sc.wholeTextFiles——这将使文件绝对路径作为键,值作为文件内容。这个限制是文件应该很小。
wholeTextFiles
非常接近我需要的。但是我们的文件每1.2GB就滚动一次,这可能太大,无法满足
wholeTextFiles
的目的。