gpt4 book ai didi

hadoop - 如何在 Pig 中检索上一行值

转载 作者:可可西里 更新时间:2023-11-01 15:27:52 26 4
gpt4 key购买 nike

您好,我正在使用 PigHBASE 中移动值。我试图在条件下执行,如果成功我将连接一个值,如果失败我将连接前一行的值。为此,我尝试了以下代码,但它无法正常工作并引发错误。

代码:

STOCK_A = LOAD '/user/cloudera/pat.hl7' USING PigStorage('|');
data = FILTER STOCK_A BY ($0 matches '.*OBR.*' or $0 matches '.*OBX.*');
MSH_DATA = FOREACH data GENERATE ($0 == 'OBR' ? CONCAT('HL','OBR',(chararray)$1) : CONCAT('HL','OBR',(chararray)(data -1).$1)) AS Uid, $1 AS id, $5 AS result, $3 AS resultname;

错误:

ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: <line 14, column 122>  mismatched input '.' expecting RIGHT_PAREN

我希望在其他行中复制该串联值,直到我到达另一个 OBR。请帮忙。

最佳答案

您不能在 Pig 本身中引用以前的行,但您可以编写一个聚合 UDF 来接受所有行并执行所需的操作。但请记住,您还需要指定并行度 1,否则您的行将被分成 block

关于hadoop - 如何在 Pig 中检索上一行值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40889609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com