【发布时间】:2012-12-08 17:29:25
【问题描述】:
我想在 pig 中编写一个自定义加载 udf 来从目录结构中加载文件。
目录结构就像一个电子邮件目录。它有一个名为 maildir 的根目录。在这里面我们有各个邮件持有者的子目录。在每个邮件帐户持有者目录中都有几个子目录,如收件箱、已发送、垃圾箱等。
例如:maildir/mailholdername1/inbox/1.txt maildir/mailholdername2/sent/1.txt
我只想读取所有 mailerholdername 子目录中的收件箱文件。
我无法理解:
- 应该将什么作为参数传递给加载 udf
- 如果只读取相应的收件箱文件,应如何解析整个目录结构。
我想处理一个文件并执行一些数据提取并将其加载为一条记录。因此,如果有 10 个文件,我会得到一个包含 10 条记录的关系 此外,我想对这些收件箱文件进行一些操作并提取一些数据。
【问题讨论】:
-
你能展示你到目前为止所做的事情吗?
-
实际上我是通过核心 java 完成的。但是读取和处理 abt 3 gb 的巨大文本文件非常耗时。因此我切换到 pig。但现在我无法做到第一步本身......数据完全是非结构化的。它就像我们编写的普通电子邮件文本文件。因此我们无法直接加载它们,因为没有架构......所以我无法进一步移动......跨度>
-
嗨,Shrey,你有答案吗?
标签: hadoop user-defined-functions apache-pig