pig中的数据处理,带有单独的tab

nvbavucw  于 2021-06-24  发布在  Pig
关注(0)|答案(1)|浏览(310)

我是一个非常新的Pig,所以面对一些问题,而试图执行非常基本的Pig加工。
1-使用pig加载该文件
2-编写一个处理逻辑,根据日期过滤记录,例如,行有2列col_1和col_2(假设列是chararray),我只需要得到col_1和col_2之间有1天差异的记录。
3-最终将过滤后的记录存储在配置单元表中。
输入文件(制表符分隔):-

2016-01-01T16:31:40.000+01:00   2016-01-02T16:31:40.000+01:00
2017-01-01T16:31:40.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);

我得到的结果如下:-倾倒;

(,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)

不知道为什么?请有人能帮我在这个如何解析标签分离的文件,以及如何转换该字符到日期和过滤的基础上,日差?
谢谢

anauzrmj

anauzrmj1#

使用todate和use daysbetween将列转换为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();

相关问题