当前位置: 代码迷 >> python >> Hadoop流多行输入
  详细解决方案

Hadoop流多行输入

热度:93   发布时间:2023-06-13 15:28:15.0

我将用于某些Hadoop Streaming作业。 我有一堆JSON字典,每个字典都包含一篇文章(多行文本)和一些元数据。 我知道Hadoop在提供大文件时性能最佳,因此我想将所有JSON字典合并为一个文件。

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

也许编码字符串(base64?)会删除所有新行,而普通的“阅读器”将能够处理它?

串联JSON文件时,只需在每个字典中用spaecs替换所有换行符。 换行符除了是空白字符外,在JSON中没有任何特殊含义。

是一种自定义输入格式,记录读取器将根据打开/关闭方括号中的push / pop拆分JSON对象。

它被编写来处理流JSON(而不是用换行符分隔的JSON),只要它使用\\n而不是实际的新行来构成正确的JSON对象即可。