1

我将Dumbo用于一些 Hadoop Streaming 作业。我有一堆 JSON 字典,每个字典都包含一篇文章(多行文本)和一些元数据。我知道 Hadoop 在提供大文件时表现最好,所以我想将所有 JSON 字典合并到一个文件中。

问题是我不知道如何让 Hadoop 将每个字典/文章作为单独的值读取,而不是在换行符上拆分。如何告诉 Hadoop 使用自定义记录分隔符?或者,也许我可以将所有 JSON 字典放入一个列表数据结构中并让 Hadoop 读取它?

或者也许对字符串进行编码(base64?)会删除所有新行并且普通的“阅读器”能够处理它?

4

2 回答 2

1

连接 JSON 文件时,您可以将每个字典中的所有换行符替换为空格。除了作为空格字符之外,换行符在 JSON 中没有任何特殊含义。

于 2010-08-16T21:55:40.900 回答
0

concatenated-json-mapreduce是一种自定义输入格式,记录阅读器将根据开/关括号上的推送/弹出来拆分 JSON 对象。

它是为处理流式 JSON(而不是换行分隔的 JSON)而编写的,只要它是格式良好的 JSON 对象,使用\n而不是实际的换行,它就可以工作。

于 2019-03-07T19:36:38.130 回答