我是 Pig 编程新手,目前我正在尝试用 pig 实现我的 Hadoop 作业。到目前为止,我的 Pig 程序有效。我将一些输出文件存储为 *.txt ,并以分号作为分隔符。我的问题是Pig在元组周围添加了括号......
是否可以将输出存储在没有这些括号的文件中?只存储值?也许通过用 UDF 覆盖 PigStorage 方法?有人对我有提示吗?
我想将我的输出文件读入没有括号的 RDBMS (Oracle)。
我是 Pig 编程新手,目前我正在尝试用 pig 实现我的 Hadoop 作业。到目前为止,我的 Pig 程序有效。我将一些输出文件存储为 *.txt ,并以分号作为分隔符。我的问题是Pig在元组周围添加了括号......
是否可以将输出存储在没有这些括号的文件中?只存储值?也许通过用 UDF 覆盖 PigStorage 方法?有人对我有提示吗?
我想将我的输出文件读入没有括号的 RDBMS (Oracle)。
您可能需要编写自己的自定义 Storer。请参阅:http ://wiki.apache.org/pig/Pig070LoadStoreHowTo 。
将其编写为普通的 CSV 或其他内容应该不会太难。还有一个预先存在的 DBStorage 类,如果需要,您可以使用它直接写入 Oracle。
对于首先找到此主题的人,此处回答了问题: 删除 Pig 输出中的括号和逗号
在脚本中使用 FLATTEN 命令,如下所示:
output = FOREACH [variable] GENERATE FLATTEN (($1, $2, $3));<br>
STORE output INTO '[path]' USING PigStorage(,);
注意要展平的输出的第二组括号。