猪:删除内袋中的元组
Pig: remove tuples in inner bag
数据是这样的:
A: {id: int, data: {ARRAY_ELEM:(score:float, flag:boolean)}}
12, {(1.35, True), (2.46, False)}
13, {(0.98, False)}
14, {(0.23, True), (0.95, True)}
我想删除所有标记为 False 的元组,而不展平数据。
预期输出:
12, {(1.35, True)}
13, {}
14, {(0.23, True), (0.95, True)}
有什么方法可以在 Pig Latin 中做到这一点吗?谢谢!!
尝试嵌套 foreach。
A = LOAD 'input.txt' AS (id: int, data:bag{(score:float, flag:boolean)});
B = FOREACH A {
filtered_data = FILTER data by flag == true;
GENERATE id, filtered_data;
}
store B into '$output';
请注意,您的输入文件不应包含任何 space 布尔值。
(意思是“{(1.35,[space]True),(2.46,[space]False)}”应该是“{(1.35,True),(2.46,False)}”没有spaces 在逗号之后。否则,您需要将它们作为字符数组加载。
数据是这样的:
A: {id: int, data: {ARRAY_ELEM:(score:float, flag:boolean)}}
12, {(1.35, True), (2.46, False)}
13, {(0.98, False)}
14, {(0.23, True), (0.95, True)}
我想删除所有标记为 False 的元组,而不展平数据。 预期输出:
12, {(1.35, True)}
13, {}
14, {(0.23, True), (0.95, True)}
有什么方法可以在 Pig Latin 中做到这一点吗?谢谢!!
尝试嵌套 foreach。
A = LOAD 'input.txt' AS (id: int, data:bag{(score:float, flag:boolean)});
B = FOREACH A {
filtered_data = FILTER data by flag == true;
GENERATE id, filtered_data;
}
store B into '$output';
请注意,您的输入文件不应包含任何 space 布尔值。 (意思是“{(1.35,[space]True),(2.46,[space]False)}”应该是“{(1.35,True),(2.46,False)}”没有spaces 在逗号之后。否则,您需要将它们作为字符数组加载。