以下是xml片段:
<employment source="file">
<employer>
<unparsed>EMPLOYER-2</unparsed>
</employer>
<fileDate>2020-07-21</fileDate>
<effDate>2020-07-21</effDate>
</employment>
<employment source="file">
<employer>
<unparsed>EMPLOYER-1</unparsed>
</employer>
<occupation>NURSE</occupation>
<hiredDate>2006-09-01</hiredDate>
<fileDate>2015-08-07</fileDate>
<effDate>2015-08-07</effDate>
</employment>
在上面的代码中,xml包含就业信息。上面的信息是2个雇主,但标签下就业是不一样的。例如:employe-2没有“雇佣日期和职业”信息,但employer-1有。需要按以下格式从xml文件中提取数据的逻辑:
我试过使用explode和posexplode,但没有成功。
1条答案
按热度按时间mlmc2os51#
以下步骤可能会有所帮助,
使用maven的hivexmlserdehttps://mvnrepository.com/artifact/com.ibm.spss.hive.serde2.xml/hivexmlserde
将输入xml文件复制到指向hdfs的配置单元外部表
hadoop fs -copyFromLocal emp.xml /stackoverflow/data/hive/dwh/employee
将XMLSerdeJAR添加到HiveTerminal中,并创建ddl,如下所示。