我有一个要求,我必须解析 xml 以获取所需的字段,对所需的字段执行操作并使用数据生成 csv。
我查看了 pig 中可用的 XmlLoader,但它似乎也返回了 xml 标签。我感兴趣的是数据。有什么办法可以做到这一点?我还需要使用数据生成 CSV。
任何工作样本都会有很大帮助。
我有一个要求,我必须解析 xml 以获取所需的字段,对所需的字段执行操作并使用数据生成 csv。
我查看了 pig 中可用的 XmlLoader,但它似乎也返回了 xml 标签。我感兴趣的是数据。有什么办法可以做到这一点?我还需要使用数据生成 CSV。
任何工作样本都会有很大帮助。
您可以使用 REGEX_EXTRACT() 从标签中获取信息,也可以使用 SUBSTRING() 和 REGEX_EXTRACT_ALL。
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/