【问题标题】:Pig: remove tuples in inner bag猪:取出内袋中的元组
【发布时间】:2019-01-09 23:19:18
【问题描述】:

这是数据的样子:

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

【问题讨论】:

    标签: apache-pig


    【解决方案1】:

    尝试嵌套 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';
    

    请注意,您的输入文件不应包含任何用于布尔值的空格。 (意思是“{(1.35,[space]True), (2.46,[space]False)} ”应该是“{(1.35,True), (2.46,False)}”,逗号后没有空格。否则,你'需要将它们加载为字符数组。

    【讨论】:

    • @ShuangJin,如果我的回答对你有用,你能接受吗?
    • 好的,小二!完成:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多