Hadoop 如何使用pig转换目标值?
我有一些目标值为4的数据我想让其中三个成为使用拉丁语pig的一部分Hadoop 如何使用pig转换目标值?,hadoop,apache-pig,Hadoop,Apache Pig,我有一些目标值为4的数据我想让其中三个成为使用拉丁语pig的一部分 Input: Output: ID | Target ID | Target ----------------- ----------------- test1 1 test1 1 test2 1 test2 1 test3
Input: Output:
ID | Target ID | Target
----------------- -----------------
test1 1 test1 1
test2 1 test2 1
test3 2 test3 2
test4 2 test4 2
test5 3 test5 2
test6 4 test6 2
test7 2 test7 2
有人知道执行此操作的最佳方法用于检查目标值是否大于1,如果为真,则将其替换为所需的值,在本例中为2
A = LOAD 'data.txt' USING PigStorage('\t') AS (Id:chararray,target:int);
B = FOREACH A GENERATE Id,(target > 1 ? 2 : target);
DUMP B;
哪三个值必须变为2?所有值2、3和4,比如2。如果目标是字符而不是整数,请再问一个问题。可以使用bincond运算符,或者它只是用于数值运算,我应该使用另一个运算符吗?当然,也可以将加载的squema更改为chararray。您也可以将其用于chararray。在这种情况下,您将无法检查>。您必须检查“2”、“3”、“4”。