猪:取出内袋中的元组

时间:2019-01-09 23:19:18

标签: apache-pig

这是数据的样子:

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中做到这一点?谢谢!!

1 个答案:

答案 0 :(得分:0)

尝试嵌套的foreach。

for (int i = 0; i < 10; i++)
{
    var objectFromProjection = projectedCollection.First(o => o.initialObj == (i % 2 == 0));

    //Always false
    Console.WriteLine(ReferenceEquals(projectedCollection[0], objectFromProjection));
    Console.WriteLine(ReferenceEquals(projectedCollection[1], objectFromProjection));
}

请注意,输入文件中的布尔值不应包含任何空格。 (意味着“ {(1.35,[space] True),(2.46,[space] False)}””应为“ {{1.35,True),(2.46,False)}”,逗号后没有空格。否则,您'需要将它们加载为chararray。