Pig - загружать документы Word (.doc & .docx) с помощью pig

Я не могу загрузить документы Microsoft Word (.doc или.docx) с поросенком. Действительно, когда я пытаюсь это сделать, используя TextLoader(), PigStorage() или вообще не загружая, это не работает. На выходе получаются странные символы.

Я слышал, что могу написать собственный загрузчик в JAVA, но это кажется действительно сложным, и я не понимаю, как мы можем запрограммировать один из них в данный момент.

Я хотел бы поместить все содержимое файла.doc в одну сумку chararray, чтобы впоследствии я мог использовать функцию фильтра для его обработки.

Как я мог сделать?

Спасибо

1 ответ

Они правы. Поскольку.doc и.docx являются двоичными форматами, простые текстовые загрузчики не будут работать. Вы можете либо написать UDF, чтобы иметь возможность загружать файлы непосредственно в Pig, или вы можете выполнить некоторую предварительную обработку для преобразования всех файлов.doc и.docx в файлы.txt, чтобы Pig вместо этого загружал эти файлы.txt. Эта ссылка может помочь вам найти способ конвертировать файлы.

Тем не менее, я все еще рекомендую научиться писать UDF. Предварительная обработка файлов приведет к значительным накладным расходам, которых можно избежать.

Обновление: вот несколько ресурсов, которые я использовал для написания своих Java (Load) UDF в прошлом. Один, Два.

Другие вопросы по тегам