XML File Input Map/Reduce Hadoop Windows Server

Работя върху платформата Hadoop (от HortonWorks), инсталирана на Windows Server и кодирам Map/Reduce файлове в C#.

Имам входна папка със 100k xml файла. Искам да прочета всеки xml файл и да напиша всеки етикет в един ред. Моля, следвайте примера по-долу.

ВХОД:

<Person>
    <a>1</a>
    <b>2</b>
    <c>3</c>
</Person>

ИЗХОД 1,2,3 .... ....

Можете ли да ми предоставите информация за това как трябва да чета данни от сега. Mapper се предоставя с отделни файлове за всеки файл, където е трудно да се анализират отделни тагове.


person Varun Gupta    schedule 02.08.2013    source източник


Отговори (2)


Първата ви задача ще бъде да намерите начин да четете xml файлове и да ги подавате към вашето MR задание, тъй като няма наличен вграден InputFormat за xml файлове. Вижте това и това, ако имате нужда от помощ (Не съм ги тествал лично, но ми изглеждат добре). Ще получите съдържанието в началния и крайния етикет, предоставени от вас по време на конфигурацията на заданието, като стойности във вашия картограф. Извлечете стойностите, от които се нуждаете, и генерирайте изхода. HTH

person Tariq    schedule 02.08.2013

Мисля, че трябва да разгледате XMLInputFormat, за да се справите с xml файлове в mapreduce. Можете да посочите началния и крайния таг, който във вашия случай ще бъде и съответно. Моля, разгледайте този Връзка към XMLInputFormat. Сега във всяка функция на карта ще получите стойността (т.е. тази, която споменахте във вашия въпрос) като ваш единствен запис. Вече можете да използвате XML DOM парсер (проверете тази връзка XML DOM анализатор) или XML SAX анализатор Пример за анализатор на XML SAX за извличане на необходимите дъщерни стойности и можете да ги излъчвате като окончателен резултат.

person Binary01    schedule 05.08.2013