我正在使用 Hive 0.13.1,并创建了一个自定义 SerDe,它能够处理一种特殊的 xml 数据。到目前为止,一切都很好。我还为拆分输入数据的 InputFormat 创建了一个类。
我是否有可能在我的自定义 SerDe(或我的 SerDe 中的其他地方)的 deserialize() 函数中生成多行(输出)?
这样我就可以从一个拆分中创建例如两行?据我所知,在反序列化函数中(在其他 SerDe 类中),返回值只是一个列表(一行的值),并且将显示为一行。
可以说我有一个这样的xml:
<item>
<id>0</id>
<timestamp>00:00:00</timestamp>
<subitemlist>
<subitem>1</subitem>
<subitem>2</subitem>
</subitemlist>
</item>
我的 SerDe 获取了整个项目块,我现在要做的是为每个在 Hive中创建一个<subitem>
id 的行。<item>
我无法调整 InputFormat 类,因为问题并不像本例中那样微不足道:)