Apache pig 带-tagsource选项的清管器行为怪异

Apache pig 带-tagsource选项的清管器行为怪异,apache-pig,Apache Pig,我在加载输入数据时使用了-tagsource选项,以便 识别输入源。看来,后来我只做了一个项目 从输入元组中选择字段,有一些假设和 虽然我试图忽略某些字段,但它们总是被投影 看看我的剧本 rawdata=使用PigStorage('''-tagsource')加载'data/201212*' (文件名:chararray,ts:int,ip:chararray,域:chararray, 答:查拉雷) A=foreach rawdata生成ts、ip、域、应答、, CONCAT(CONCAT(文件

我在加载输入数据时使用了-tagsource选项,以便 识别输入源。看来,后来我只做了一个项目 从输入元组中选择字段,有一些假设和 虽然我试图忽略某些字段,但它们总是被投影

看看我的剧本

rawdata=使用PigStorage('''-tagsource')加载'data/201212*' (文件名:chararray,ts:int,ip:chararray,域:chararray, 答:查拉雷)

A=foreach rawdata生成ts、ip、域、应答、, CONCAT(CONCAT(文件名,'.''),上层(子字符串(域,0,1)))为 域索引,文件名作为文件名

B=foreach A生成ip作为ip,子字符串(域,0,1)作为 域\第一个\字符,文件名

倾倒垃圾

垃圾场B

说明B

创建B时,我试图只包含A中的选定字段。 但是,如果我转储B,“ts”字段(A中的第一个字段)会一直出现 在B中,但在B中,一切看起来都和预期的一样好

倾倒垃圾:

(100123.98.11.123,google.com,{(谷歌)},20121201_G,20121201)

(95500.98.11.123,雅虎网站,{(雅虎)},20121201_-Y,20121201)

(107123.98.11.123,google.com,{(谷歌)},20121201_G,20121201)

(156123.98.11.123,cnn.com,{(cnn)},20121201_C,20121201)

倾倒B:

(100,g,20121201)

(95年,2012年,2012年)

(107,g,20121201)

(156,c,20121201)

说明B:

B | ip:chararray | domain|u first_char:chararray | filename:chararray

|123.98.11.123 | g | 20121202

如转储B中所示,不是将ip值打印为第一个字段(如
在图B)中,它打印ts字段。

在internet上搜索时,我发现这是PigStorage中的一个错误,并找到了解决方法

使用标志
-t ColumnMapKeyPrune
启动清管器有助于解决此问题,即使用命令
pig-x local-t ColumnMapKeyPrune sample.pig
启动清管器

感谢pig用户组的支持