gpt4 book ai didi

hadoop - Pig-使用位置表示法时,如何在JOIN之后引用FOREACH中的列?

转载 作者:行者123 更新时间:2023-12-02 21:19:09 25 4
gpt4 key购买 nike

我有2个表order和order_items

订单表包含(order_id,order_date,order_customer_id,order_status,order_month)
order_items包含(order_item_id,order_item_order_id,order_item_product_id,order_item_quantity,order_item_subtotal,order_item_product_price)

这些表由orders.order_id和order_items.order_item_order_id连接
未提供数据类型,因此使用位置标记。

orders = LOAD '/user/horton/orders' USING PigStorage(',');
order_items = LOAD '/user/horton/orders' USING PigStorage(',');
ordersjoin = JOIN orders BY $0, order_items BY $1 ;
orderrevenuebydate = FOREACH ordersjoin GENERATE orders::$1, order_items::$4;

尝试为orderrevenuebydate生成FOREACH时收到以下错误

Unexpected character '$' 2016-06-19 19:17:22,757 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: Unexpected character '$' Details at logfile: /home/6301dd50e3fac19f7c90fbf9898496/pig_1466356957630.log

最佳答案

您必须直接从关系中引用位置符号。

例如,如果要从ordersjoin关系生成order_date和order_item_subtotal字段,请使用以下语句。

orderrevenuebydate = FOREACH ordersjoin GENERATE $1, $9;

请注意,在加入操作之后,ordersjoin关系将包含来自两个关系的所有属性。

关于hadoop - Pig-使用位置表示法时,如何在JOIN之后引用FOREACH中的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37911239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com