2

我是 Pig 编程新手,目前我正在尝试用 pig 实现我的 Hadoop 作业。到目前为止,我的 Pig 程序有效。我将一些输出文件存储为 *.txt ,并以分号作为分隔符。我的问题是Pig在元组周围添加了括号......

是否可以将输出存储在没有这些括号的文件中?只存储值?也许通过用 UDF 覆盖 PigStorage 方法?有人对我有提示吗?

我想将我的输出文件读入没有括号的 RDBMS (Oracle)。

4

2 回答 2

1

您可能需要编写自己的自定义 Storer。请参阅:http ://wiki.apache.org/pig/Pig070LoadStoreHowTo 。

将其编写为普通的 CSV 或其他内容应该不会太难。还有一个预先存在的 DBStorage 类,如果需要,您可以使用它直接写入 Oracle。

于 2012-12-08T01:00:38.893 回答
1

对于首先找到此主题的人,此处回答了问题: 删除 Pig 输出中的括号和逗号

在脚本中使用 FLATTEN 命令,如下所示:

output = FOREACH [variable] GENERATE FLATTEN (($1, $2, $3));<br>
STORE output INTO '[path]' USING PigStorage(,);

注意要展平的输出的第二组括号。

于 2015-11-12T07:51:21.900 回答