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