过滤命令在 Pig 中返回 0 条记录

残酷的
A = LOAD 'Batting.csv' USING PigStorage(',');
B = foreach A generate $0 as id:int,$1 as year:int,$8 as run:int;
C = FILTER B by year==1956;

但是 DUMP C 返回 0 条记录。但档案中有1956年的记录。

样本数据:

playerID,yearID,stint,teamID,lgID,G,G_batting,AB,R,H,2B,3B,HR,RBI,SB,CS,BB,SO,IBB,HBP,SH,SF,GIDP,G_old
aardsda01,2004,1,SFN,NL,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11
aardsda01,2006,1,CHN,NL,45,43,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,45
aardsda01,2007,1,CHA,AL,25,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2
aardsda01,2008,1,BOS,AL,47,5,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,5
aardsda01,2009,1,SEA,AL,73,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
aardsda01,2010,1,SEA,AL,53,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
aaronha01,1954,1,ML1,NL,122,122,468,58,131,27,6,13,69,2,2,28,39,,3,6,4,13,122
aaronha01,1955,1,ML1,NL,153,153,602,105,189,37,9,27,106,3,1,49,61,5,3,7,4,20,153
aaronha01,1956,1,ML1,NL,153,153,609,106,200,34,14,26,92,2,4,37,54,6,2,5,7,21,153
aaronha01,1957,1,ML1,NL,151,151,615,118,198,27,6,44,132,1,1,57,58,15,0,0,3,13,151
aaronha01,1958,1,ML1,NL,153,153,601,109,196,34,4,30,95,4,1,59,49,16,1,0,3,21,153
aaronha01,1959,1,ML1,NL,154,154,629,116,223,46,7,39,123,8,0,51,54,17,4,0,9,19,154
aaronha01,1960,1,ML1,NL,153,153,590,102,172,20,11,40,126,16,7,60,63,13,2,0,12,8,153
aaronha01,1961,1,ML1,NL,155,155,603,115,197,39,10,34,120,21,9,56,64,20,2,1,9,16,155

转储 B

(zuvelpa01,1984,2)
(zuvelpa01,1985,16)
(zuvelpa01,1986,2)
(zuvelpa01,1987,2)
(zuvelpa01,1988,9)
(zuvelpa01,1989,10)
(zuvelpa01,1991,0)
(zuverge01,1951,0)
(zuverge01,1952,1)
(zuverge01,1954,1)
(zuverge01,1954,1)
(zuverge01,1955,0)
(zuverge01,1955,1)
(zuverge01,1956,0)
(zuverge01,1957,1)
(zuverge01,1958,0)
(zuverge01,1959,0)
(zwilldu01,1910,7)
(zwilldu01,1914,91)
(zwilldu01,1915,65)
(zwilldu01,1916,4)
一个板球运动员

B并不完全有必要测试过滤是否有效......

$ cat batting.pig
A = LOAD 'Batting.csv' USING PigStorage(',');
C = FILTER A by (int)$1==1956;
\d C

您确实需要从文件中删除标题。然后您实际上可以将数据转换为整数。

请参阅Hadoop Pig - 删除 csv 标头

或者,只使用 CLI 工具

$ sed -i '' 1d Batting.csv
$ pig -f batting.pig
...
(aaronha01,1956,1,ML1,NL,153,153,609,106,200,34,14,26,92,2,4,37,54,6,2,5,7,21,153)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 PIG 中的多条记录中拆分一条记录

在 Apache Pig 中过滤数据

如何修复DeleteManyAsync返回0条用Filter删除的记录?

查询返回0条记录时更改MySQL比较值

C#TheMovieDB serializer.Deserialize返回0条记录

使用硒进行网页抓取 - 返回 0 条记录

Pig hadoop分组除法返回0

PIG 中的多个记录到单个记录

删除 SQL Server 中的初始 0 条记录

在 Pig 中的 foreach 语句之后过滤

连接PIG脚本中的不同记录

记录在 SQL Server 中没有按日期获取。找到 0 条记录

如何从仅返回1或0条记录的Diesel查询中获取Option <T>而不是Option <Vec <T >>?

PIG 中的 DUMP 命令不起作用

mongoexport出口0条记录

SQL查询从两个查询的结果返回0或1作为一条记录

提取XML会返回0条没有相关字段的记录

使用 postgress 时间戳之间的间隔计算日期数始终返回 0 条记录

从Elm中的记录列表中返回一条记录

Linux命令从不以数字开头的文件中过滤记录

group by 返回的 COUNT 条记录

Pig AvroStorage +记录中不受支持的类型:类org.apache.pig.data.DataByteArray

Apache Pig过滤元组中的空值或文字

如何在SQL中向后运行UPDATE命令(从最后一条记录到第一条)?

检索按日期过滤的每个组中的最后一条记录-MySQL

当该查询向 mysql 客户端返回 4 条记录时,为什么 Rows_sent 为 0?

Kafka使用者-待处理的取回操作永远不会被删除,轮询会继续返回0条记录

如何从历史记录中获取最后N条命令?

在mysql中可以记录多少条记录?