我正在使用Dumbo进行一些Hadoop流媒体作业。我有一堆JSON字典,每个字典都包含一篇文章(多行文本)和一些元数据。我知道Hadoop在提供大文件时性能最好,所以我希望将所有JSON字典合并到一个文件中。
问题是我不知道如何让Hadoop将每个字典/文章作为单独的值读取,而不是在换行符上拆分。如何告诉Hadoop使用自定义记录分隔符?或者我可以将所有的JSON字典放到一个列表数据结构中,然后让Hadoop读取它?
或者对字符串进行编码(base64?)会不会删除所有的新行,而正常的“阅读器”就能够处理它?
发布于 2010-08-17 05:55:41
在连接JSON文件时,可以将每个字典中的所有换行符都替换为spaecs。在JSON中,换行符除了是一个空格字符外,没有任何特殊意义。
发布于 2019-03-08 03:36:38
concatenated-json-mapreduce是一种自定义输入格式,记录读取器将根据开始/结束括号上的推送/弹出来拆分JSON对象。
它是为处理流JSON (而不是换行符分隔的JSON)而编写的,所以只要它是使用\n而不是实际新行的格式良好的JSON对象,它就应该可以工作。
https://stackoverflow.com/questions/3326270
复制相似问题