我有一个XML文件列表,需要使用MR代码进行解析。解析MapReduce中的XML文件
xml文件的样本是在下面
<tns:envelope xmlns:tns="http://abcd.com/schemas/envelope/v3_0" xmlns:xsi="http://www.abcd.org/2001/XMLSchema-instance" version="3.0">
<tns:header>
<tns:type>response</tns:type>
<tns:service>
<tns:name>Value1</tns:name>
<tns:version>3.0</tns:version>
</tns:service>
<tns:originator>Value2</tns:originator>
<tns:businessProcessName>Value3</tns:businessProcessName>
<tns:sequenceNumber>value3</tns:sequenceNumber>
<tns:transactionReference>abcdef12345</tns:transactionReference>
<tns:expirationSeconds>1200</tns:expirationSeconds>
<tns:additionalParameters>
<tns:param>
<tns:name>notificationURL</tns:name>
<tns:value>https://url1</tns:value>
</tns:param>
<tns:param>
<tns:name>ConsumingCallbackURL</tns:name>
<tns:value>https://url2</tns:value>
</tns:param>
</tns:additionalParameters>
<tns:result>
<tns:status>success</tns:status>
<tns:provider>ABC</tns:provider>
</tns:result>
<tns:requestDateTime>2016-02-16T08:12:17.827Z</tns:requestDateTime>
</tns:header>
<tns:body></tns:body>
</tns:envelope>
现在我有哪些地方需要分析感兴趣的标签保持一个配置文件。样品标签名称给出像下面
/envelope/version
/envelope/header/type
/envelope/header/service/name
/envelope/header/additionalParameters/param/name
/envelope/header/additionalParameters/param/value
预期产量将是像下面
/envelope/version /envelope/header/type /envelope/header/service/name /envelope/header/additionalParameters/param/name /envelope/header/additionalParameters/param/value
3.0 response Value1 notificationURL https://url1
3.0 response Value1 ConsumingCallbackURL https://url2
我可以得到一个样本代码来解析XML并得到范例所需的输出。
你的文件不够大需要mapreduce,也没有明确的缩小阶段。您正在跨文件映射XML解析器。 –
这只是一个示例文件。每个文件大小为300KB,我们必须每天解析大约500K个这样的文件,所以我们认为MR应该是最好的选择。你能建议还能做些什么吗? –
您是否首先在单个文件上创建了概念证明(没有mapreduce),因为这确实是您所需要的。 –