Apache pig 从Pig脚本中提取部分输入

Apache pig 从Pig脚本中提取部分输入,apache-pig,Apache Pig,我正试图写一个pig脚本来完成以下工作 从源列表加载输入。我知道给出列表的方式是“s3://prod/propensity/probablity/#{runDate}/#{partition}/part*” 例如,如果运行日期为20131020,分区为1,3。 清管器负载将从s3:\tap prod/PROPERSITY/PROBABLITY/20131020/1/part*和s3:\tap prod/PROPERSITY/PROBABLITY/20131020/3/part*加载* 我希望在输

我正试图写一个pig脚本来完成以下工作

  • 从源列表加载输入。我知道给出列表的方式是“s3://prod/propensity/probablity/#{runDate}/#{partition}/part*” 例如,如果运行日期为20131020,分区为1,3。 清管器负载将从s3:\tap prod/PROPERSITY/PROBABLITY/20131020/1/part*和s3:\tap prod/PROPERSITY/PROBABLITY/20131020/3/part*加载*
  • 我希望在输出中也将当前分区作为列。所以从分区1读取的行应该有一个值为1的列,从分区3读取的行应该有一个值为3的列

  • 目前,我将“s3://tap prod/propensity/glPurchaseProbabilities/#{runDate}/#{partition}/glPurchaseProbabilities.tsv/part*”作为输入传递给Pig脚本

  • 我的pig脚本执行类似的加载操作。 s3_consolidated_results=使用PigStorage('\t','-noschema')加载'$input')

    有人能帮我截取输入变量并从中提取分区并作为列推送吗?

    试试这个:

    A = LOAD 'x' using PigStorage('\t','-tagsource');
    
    从文件中引用:

    ('tagsource')-添加第一列表示记录的输入文件。


    之后,您可以进行投影,以获取您真正感兴趣的文件名部分。

    尝试过。.我一直得到无法识别的选项,原因是:java.lang.RuntimeException:org.apache.commons.cli.UnrecognizedOptionException:unrecognized option:-tagsource at org.apache.pig.builtin.PigStorage。(PigStorage.java:187)…29更多原因:org.apache.commons.cli.UnrecognizedOptionException:Unrecogned option:-TagSource您使用的是哪个版本的pig?我用0.11.0测试了它,它运行正常。但也应该用0.10.0()。我检查了代码,但它没有tagsource选项。它只有2个架构选项。它就在那里