2016-06-19 7 views
0

Iは、2つのテーブルの注文とORDER_ITEMS豚 - 位置表記を使用するときにJOINの後にFOREACHの列を参照する方法?

を有する

注文テーブルが含まれている(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

予期しない文字 '$' 2016年6月19日19用FOREACH生成しようとしたとき、私は次のエラーを取得する:17:22757 [メイン] ERRORのorg.apacheを。 pig.tools.grunt.Grunt - ERROR 1200:ログファイルで予期しない文字 '$' 詳細:あなたが直接位置表記FRを参照する必要があります /home/6301dd50e3fac19f7c90fbf9898496/pig_1466356957630.log

答えて

0

om関係。例えば

、あなたは以下の文を使用し、ordersjoin関係からORDER_DATEorder_item_subtotalフィールドを生成する場合。

orderrevenuebydate = FOREACH ordersjoin GENERATE $1, $9; 

結合操作の後、ordersjoin関係は2つの関係からのすべての属性が含まれていることに注意してください。

+0

これはうまくいきました。どうもありがとうございます。 –

関連する問題