Привет, я установил hadoop-0.20.2-cdh3u5 в псевдораспределенном режиме на VMware. Я хочу проанализировать XML-файл, используя эту установленную среду. Я могу это сделать, написав код map/reduce, а затем экспортируя их как .jar файлы на кластер, а затем выполните их в кластере. Я не могу понять, как я могу поместить код разбора java (используя синтаксический анализатор SAXON) для этого в классы карты/сокращения, а затем сгенерировать файлы csv на выходе.Разбор XML-файлов в Hadoop
Так что у меня этот парсинг код: (с помощью саксонских парсер здесь)
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-то вроде этого: (Sample элемент здесь)
<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 и различные руководства по yahoo.
Так что мой вопрос: может кто-то дать мне знать, как я могу написать такой код сокращения кода, а затем создать из него файл jar.
Дайте мне знать, если вам нужна другая информация. Я старался быть как можно короче.
Заранее спасибо.
Примечание: Я знаю, что это звучит как очень тривиальный вопрос в мире mapreduce, и этот XML, который я показал здесь, является всего лишь примером одного тега, в котором есть несколько тегов.
Также есть аналогичные сообщения о переполнении стека, но ни один из них не ответил правильно. Я также знаю, что в Hadoop есть что-то, что называется XMLInputFormat. Но опять мой вопрос: я не могу объединить всю эту информацию в исполняемый код, уменьшая формат кода. – user1188611