嗨,我已经在虚拟分布式模式下安装了hadoop-0.20.2-cdh3u5。我想使用这个已建立的环境来解析XML文件。我可以通过编写map/reduce代码然后将它们导出为.jar文件到集群上,然后在集群上执行它们。我无法弄清楚的是,如何将java解析代码(使用SAXON解析器)放到map/reduce类中,然后在输出中生成csv文件。解析Hadoop中的XML文件
所以我有这样的解析代码:(使用撒克逊解析器这里)
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
public class JAXBC {
private JAXBContext context;
private Unmarshaller um;
public JAXBC() throws JAXBException
{
// creating JAXB context and instantiating Marshaller
JAXBContext context = JAXBContext.newInstance(ConnectHome.class);
// get variables from the xml file
um = context.createUnmarshaller();
}
public ConnectHome convertJAXB(String strFilePath) throws FileNotFoundException,
JAXBException
{
return ((ConnectHome) um.unmarshal(new FileReader(strFilePath)));
}
}
我有XML是这样的:(此处样品元素)
<Course>
<ID>1001</ID>
<Seats>10</Seats>
<Description>Department: CS , Faculty: XYZ</Description>
<Faculty>
<Name>XYZ</Name>
<Age>30</Age>
</Faculty>
</Course>
现在我的问题是我不能够弄清楚如何以map/reduce格式编写这段特定的代码。我已经提到了这个特定的教程a hadoop和各种雅虎教程。
所以我的问题是有人可以让我知道我该如何编写这样的map reduce代码,然后创建一个jar文件。
让我知道是否需要其他信息。我试图尽可能短。
在此先感谢。
注意:我知道这听起来像是mapreduce世界中一个非常微不足道的问题,我在这里展示的这个XML仅仅是一个标签里面没有标签的例子。
也有类似的帖子堆栈溢出,但没有一个已被正确回答。我也知道有些东西在Hadoop中调用XMLInputFormat。但是我的问题是我不能将所有这些信息合并到一个正在运行的map reduce格式代码中。 – user1188611 2013-03-17 20:38:12