Pig - 使用 pig 加载 Word 文档(.doc 和 .docx)
Posted
技术标签:
【中文标题】Pig - 使用 pig 加载 Word 文档(.doc 和 .docx)【英文标题】:Pig - load Word documents (.doc & .docx) with pig 【发布时间】:2013-08-29 09:03:23 【问题描述】:我无法使用 pig 加载 Microsoft Word 文档(.doc 或 .docx)。事实上,当我尝试这样做时,通过使用 TextLoader()、PigStorage() 或根本没有加载器,它不起作用。输出是一些奇怪的符号。
我听说我可以用 JAVA 编写一个自定义加载器,但它似乎真的很难,我不明白我们如何编写其中的一个。
我想将所有 .doc 文件内容放在一个 chararray 包中,以便以后使用过滤器函数对其进行处理。
我该怎么办?
谢谢
【问题讨论】:
【参考方案1】:他们是对的。由于 .doc 和 .docx 是二进制格式,简单的文本加载器将无法工作。您可以编写 UDF 以便能够将文件直接加载到 Pig 中,或者您可以进行一些预处理以将所有 .doc 和 .docx 文件转换为 .txt 文件,以便 Pig 将加载这些 .txt 文件。 This 链接可以帮助您开始寻找转换文件的方法。
但是,我仍然建议学习编写 UDF。预处理文件会增加可避免的大量开销。
更新:以下是我过去用于编写 java(加载)UDF 的一些资源。 One, Two.
【讨论】:
感谢您的回答。你知道我在哪里可以找到编写 UDF 的好而简单的教程吗? @shanks_roux 我添加了一些资源。他们没有明确地引导你完成整个过程,但你应该能够从他们那里修补一些东西。以上是关于Pig - 使用 pig 加载 Word 文档(.doc 和 .docx)的主要内容,如果未能解决你的问题,请参考以下文章
Apache Pig - 如何获取多个包之间的匹配元素数量?