【发布时间】:2012-11-25 15:37:25
【问题描述】:
我是 Pig 编程新手,目前我正在尝试使用 pig 实现我的 Hadoop 作业。 到目前为止,我的 Pig 程序有效。我将一些输出文件存储为 *.txt ,并以分号作为分隔符。 我的问题是 Pig 在元组周围添加了括号......
是否可以将输出存储在没有这些括号的文件中?只存储值?也许通过用 UDF 覆盖 PigStorage 方法? 有人给我提示吗?
我想将我的输出文件读入不带括号的 RDBMS (Oracle)。
【问题讨论】:
-
您能举个例子说明您想要达到的目标吗?
-
...以及您尝试过的产生不良输出的方法。
-
当我使用 PigStorage 函数并将我的输出写入文件时,元组或包用相应的括号括起来。将结果存储到“输出”中使用 PigStorage(';'); asdf,"{(asdf,fdsa,60,2)}" fdsa,"{(fdsa,asdf,60,2)}" callerA,"{(callerA,callerB,5,1),(callerA,callerC,100 ,1)}" callerB,"{(callerB,callerA,5,1)}" callerC,"{(callerC,callerA,100,1)}"
-
我想去掉 "{("'s 和 ")}"'s。
-
如果这样做,您将丢失数据的结构。如果这是您想要的,那么 Pig 脚本的设计应该反映这一点。您希望 RDBMS 如何解释它的发现?没有办法让 Pig 省略这些大括号,但您可以使用 FLATTEN 更改数据结构并消除所有元组和包。
标签: hadoop apache-pig bigdata parentheses