这个问题可能听起来很奇怪,但总是在我的脑海里。我们假设我有一组一列数据。如何为每条可用线路在第二列旁边放置一个静态字符串?因此,如果单列数据集的第一行显示为“hello”,则两列等效值应为“hello”,“world”。
如果您想知道我为什么要这样做,那是因为,稍后在我的脚本中我需要将单列数据集与另一个数据集连接起来,前者没有参考点。这是我到目前为止所做的:
fnl2 = FOREACH fnl1 GENERATE
var1,
(var1 == var1 ? 'World' : 'World') AS var2;
如果可以通过全部或类似的组进行,请提供您的提示。
答案 0 :(得分:1)
你在正确的轨道上,但是不需要二进制。你可以做到
fnl2 = FOREACH fnl1 GENERATE var1, 'World' AS var2;
但即使这样做也没有必要,所以你可以稍后执行JOIN
。 JOIN
包含表达式和字段,因此您可以执行
joined = JOIN fnl1 BY 1, other BY 1;
但即便这样也是不必要的,因为你只是在执行交叉产品,而Pig比你领先一步:
crossed = CROSS fnl1, other;
最后一个陈述是我认为你正在寻找的,但希望其他人为你说明一些有用的观点。