2014-02-19 22 views
0

我正在嘗試編寫一個豬腳本來實現以下操作。從豬腳本中提取部分輸入

  1. 從源列表中加載輸入。我知道給列表的方式是「s3:// prod/propensity/probablitity /#{runDate} /#{partition}/part *」 例如,如果runDate是20131020,分區是1,3。 豬的負載將從s3:\ tap-prod/propensity/probablitity/20131020/1/part *和s3:\ tap-prod/propensity/probablitity/20131020/3/part *
  2. 我想要的輸出結果也是將當前分區作爲列。因此,從分區1讀取的行應具有值爲1的列,而從分區3讀取的行應具有該列值爲3.

  3. 當前,我通過「s3:// tap-prod/propensity/glPurchaseProbabilities/runDate} /#{partition} /glPurchaseProbabilities.tsv/part*「作爲Pig腳本的輸入。

而我的豬腳本可以做這樣的加載。 s3_consolidated_results =負載使用PigStorage(「\ T」,「-noschema」)「$輸入」

誰能幫助我如何攔截輸入變量,並從中提取分區,並推動作爲列?

回答

0

試試這個:

A = LOAD 'x' using PigStorage('\t','-tagsource'); 

從文檔報價:

('tagsource') - Add a first column indicates the input file of the record.

之後,你可以做一個投影讓你真正感興趣的文件名的一部分。

+0

嘗試過..我不斷收到無法識別的選項。引起來自:java.lang.RuntimeException:org.apache.commons.cli.UnrecognizedOptionException:無法識別的選項:-tagsource at org.apache.pig.builtin.PigStorage。 (PigStorage.java:187) ... 29更多 引起:org.apache.commons.cli.UnrecognizedOptionException:無法識別的選項:-tagsource – user3326635

+0

您正在使用哪個版本的豬? – Frederic

+0

ApachePig = 0.10; – user3326635