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