Apache pig pig中的数据处理,带有单独的选项卡

Apache pig pig中的数据处理,带有单独的选项卡,apache-pig,Apache Pig,我对Pig非常陌生,所以在尝试在Pig中执行非常基本的处理时面临一些问题 1-使用Pig加载该文件 2-编写一个处理逻辑,根据日期过滤记录,例如,行有两列col_1和col_2(假设列为chararray),我只需要获取col_1和col_2之间有1天差异的记录 3-最后将筛选的记录存储在配置单元表中 输入文件(制表符分隔):- 当我尝试 A = LOAD '/user/inp.txt' USING PigStorage('\t') as (col_1:chararray,col_2:cha

我对Pig非常陌生,所以在尝试在Pig中执行非常基本的处理时面临一些问题

1-使用Pig加载该文件

2-编写一个处理逻辑,根据日期过滤记录,例如,行有两列col_1和col_2(假设列为chararray),我只需要获取col_1和col_2之间有1天差异的记录

3-最后将筛选的记录存储在配置单元表中

输入文件(制表符分隔):-

当我尝试

 A = LOAD '/user/inp.txt' USING  PigStorage('\t') as (col_1:chararray,col_2:chararray);
我得到的结果如下:- 倾倒垃圾

不知道为什么? 请有人能在这方面帮助我如何解析制表符分隔的文件,以及如何将该字符转换为日期,并根据日差进行过滤


谢谢

使用和使用将列转换为datetime对象。这应该给出差异,如果差异==1,则进行筛选。最后将其加载到配置单元

A = LOAD '/user/inp.txt' USING  PigStorage('\t') as (col_1:chararray,col_2:chararray);
B = FOREACH A GENERATE DaysBetween(ToDate(col_1,'yyyy-MM-dd HH:mm:ss'),ToDate(col_2,'yyyy-MM-dd HH:mm:ss')) as day_diff;
C = FILTER B BY (day_diff == 1);
STORE C INTO 'your_hive_partition' USING org.apache.hive.hcatalog.pig.HCatStorer();

很可能在load语句的模式部分有空间。谢谢,我解决了这个问题。实际上,在开始的时候还有一个字段,我定义为int,改为long,它就工作了。只是想知道,如果col_1和col_2在unix时间戳中,你能帮我编写代码吗?相同的功能不起作用?有什么帮助吗?应该可以,只需使用ToDate(col_1)而不使用任何格式字符串。
(,2016-01-03T19:28:58.000+01:00,2016-01-02T16:31:40.000+01:00)
(,2017-01-03T19:28:58.000+01:00,2017-01-02T16:31:40.000+01:00)
A = LOAD '/user/inp.txt' USING  PigStorage('\t') as (col_1:chararray,col_2:chararray);
B = FOREACH A GENERATE DaysBetween(ToDate(col_1,'yyyy-MM-dd HH:mm:ss'),ToDate(col_2,'yyyy-MM-dd HH:mm:ss')) as day_diff;
C = FILTER B BY (day_diff == 1);
STORE C INTO 'your_hive_partition' USING org.apache.hive.hcatalog.pig.HCatStorer();