在avro字段中处理大型xml字符串-mapreduce

relj7zay  于 2021-05-31  发布在  Hadoop
关注(0)|答案(0)|浏览(168)

我们有一个hdfs文件有多个avro记录。我们在avro记录中有一个字段,它可以包含大的xml字符串(高达10gb)。
输入,例如。

{
  id: 1,
  content: "<data><item>...</item><item>...</item>...</data>"
},
{
  id: 2,
  content: "<data><item>...</item><item>...</item>...</data>"
}

根据我对mapreduce的理解,我们可以创建自己的输入分割来分割数据。如果文件只是纯xml,我们可能会使用xmlinputformat之类的东西来拆分特定的xml标记。在这种情况下,它在一个avro字段中。似乎一个Map器会占用整个10gb的字符串,这将是非常缓慢的。
有没有什么方法可以有效地在xml项标记上切碎这些数据?期望的输出将是每个项目都有一个avro记录。
输出,例如。

{
  data_id: 1,
  item_data: "<item>...</item>"
},
{
  data_id: 1,
  item_data: "<item>...</item>"
},
{
  data_id: 2,
  item_data: "<item>...</item>"
},
{
  data_id: 2,
  item_data: "<item>...</item>"
},
...

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题