猪从元组到阵列

时间:2014-12-15 14:37:00

标签: mongodb apache-pig

我有这个元组:(ES,(AB,CD)) 我想使用FLATTEN解决它并创建以下内容:(ES,[AB,CD]),因为我想稍后将第二个元素作为数组存储到mongo中。我应该在FOREACH B GENERATE FLATTEN(m)AS [架构]中定义哪个架构?

1 个答案:

答案 0 :(得分:0)

Pig没有任何内置函数或模式将元组转换为数组。不确定这个hacky解决方案会对你有所帮助,但你可以尝试一下。

<强> input.txt中

ES      (AB,CD)

<强> PigScript:

A = LOAD 'input.txt' AS (f1:chararray,tuple:(f2:chararray,f3:chararray));
B = FOREACH A GENERATE f1,CONCAT('[',$1.f2),CONCAT($1.f3,']');
DUMP B;

<强>输出:

(ES,[AB,CD])