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

Pig - How to reference columns in a FOREACH after a JOIN when using positional notation?

我有 2 个 table 订单和 order_items

订单 table 包含(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)

table 由 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 [=10=], order_items BY  ; 
orderrevenuebydate = FOREACH ordersjoin GENERATE orders::,     order_items::;

尝试为 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

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

例如,如果你想从[=17=生成order_dateorder_item_subtotal字段]ordersjoin 关系,使用下面的语句。

orderrevenuebydate = FOREACH ordersjoin GENERATE , ;

请注意,在连接操作之后,ordersjoin 关系将包含两个关系的所有属性。