我在Pig的变量中加载了一个表,该表的架构如下所示:
我想通过 pig 拉丁脚本完成的工作是在第4列中填充“JKL”,“PQR”等值,其余各行均为空白。空白行必须仅复制列4中上一个单元格中的值。请检查以下示例。
目标表应如下所示:
最佳答案
如果您的要求是将所有值为null或为空的记录的Col4值更新为XYZ,则可以使用以下代码段执行相同的操作
--Load input data
input_data = LOAD 'input.txt' USING PigStorage() AS (Col1:chararray, Col2:int, Col3:int, Col4:chararray);
--Perform operation on each record
input_data = FOREACH input_data GENERATE Col1, Col2, Col3, ((Col4 is null or TRIM(Col4) == '') ? 'XYZ' : Col4) as Col4;
在这里,假设您正在保存输入数据,然后针对每个记录检查Col4值是否为null或为空,然后使用所需的值(XYZ)更新它,否则仅使用现有值
关于hadoop - pig 拉丁编程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31922991/