从pig脚本中提取部分输入

bihw5rsg  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(252)

我正试图写一个Pig脚本,基本上做到以下几点。
从源列表加载输入。我知道给出列表的方法是“s3://prod/propensity/probablity/#{rundate}/#{partition}/part*”,例如,如果rundate是20131020,partition是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\u consolidated\u results=使用pigstorage('\t','-noschema')加载'$input')
有人能帮我截取输入变量并从中提取分区并作为列推送吗?

mfpqipee

mfpqipee1#

试试这个:

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

引用文件: ('tagsource') - Add a first column indicates the input file of the record. 在那之后,你可以做一个投影来得到你真正感兴趣的文件名部分。

相关问题