0

我有一个要求,我必须解析 xml 以获取所需的字段,对所需的字段执行操作并使用数据生成 csv。

我查看了 pig 中可用的 XmlLoader,但它似乎也返回了 xml 标签。我感兴趣的是数据。有什么办法可以做到这一点?我还需要使用数据生成 CSV。

任何工作样本都会有很大帮助。

4

2 回答 2

0

您可以使用 REGEX_EXTRACT() 从标签中获取信息,也可以使用 SUBSTRING() 和 REGEX_EXTRACT_ALL。

于 2013-09-27T15:54:28.893 回答
0

piggybank jar 在 pig 中提供 xml 加载器

在 pig 的加载语句中,您需要使用 XMLLoader 加载。您需要在哪里正确提及您的父标签。

A = load '/path of the file' using org.apache.pig.piggybank.storage.XMLLoader('parent_tag') as (x:chararray);
B = foreach A generate REPLACE(x,'[\\n]','') as x;

在此之后,您需要使用 REGEX_EXTRACT_ALL 来提取标签之间的数据

C = foreach B generate REGEX_EXTRACT_ALL(x,'.*(?:<child_tag1>)([^<]*).*(?:<child_tag2>)([^<]*).*');

有关更多详细信息,您可以参考以下链接

https://acadgild.com/blog/converting-xml-into-csv-using-pig/

于 2016-07-06T04:37:55.040 回答