我有一个使用spark流创建的摄取管道,我想将haddop中的RDD存储为大型非结构化(JSONL)数据文件,以简化将来的分析。
将astream持久化为hadoop而不会导致大量小文件的最佳方法是什么? (因为hadoop不适合那些,并且它们使分析工作流程复杂化)
答案 0 :(得分:1)
首先,我建议使用像Cassandra一样可以处理此问题的持久层。但是,如果您对HDFS不熟悉,那么the mailing list has an answer already
您可以使用FileUtil.copyMerge
(来自hadoop fs)API并指定saveAsTextFiles
保存零件文本文件的文件夹的路径。
假设您的目录是/ a / b / c / use
FileUtil.copyMerge(FileSystem of source, a/b/c,
FileSystem of destination, Path to the merged file say (a/b/c.txt),
true(to delete the original dir,null))