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