问题陈述
我有如下文件,其中包含模式事件\u time,ad\u id
file_20170102-May have records with event_time for 20170101,20170102,20170103
file_20170103-May have records with event_time for 20170102,20170103,20170104
这里event time是事件发生的时间,filename上的时间戳是收集事件的时间。因此filename上的时间戳和文件中的事件时间不同步。
当我将这些数据写入hive时,我肯定需要基于事件时间分区来编写数据,因为用户对基于事件时间的查询感兴趣。
所以我的输出如下
/path/to/output/event_time=20170102/....parquet
/path/to/output/event_time=20170103/....parquet
但是,我需要能够跟踪文件的时间戳,因为有时一个文件被重新发布,我们想去删除已处理的文件的基础上文件的时间戳。
有没有办法写这个/path/to/output/event\u time=20170101/20170202(文件\u tiemstamp)
请注意,在上面的20170102(文件\时间戳)是一个目录,而不是配置单元分区。
或者,我可以控制Parquet文件的名称,这样当我想删除一个文件名它很容易找出哪些文件删除
1条答案
按热度按时间tzcvj98z1#
演示
下的文件
/home/dmarkovitz/myfiles
我的文件\u 1 \u 20161204.csv我的文件\u 2 \u 20161205.csv
我的文件\u 3 \u 20161205.csv
Hive
{“input_tables”:[{“tablename”:local_db@mytable“,”tabletype“:”managed\u table“}],”input\u partitions“:[{”partitionname“:”local_db@mytable@file_dt=2016-12-04/event_time=2016-12-04“},{“分区名称”:local_db@mytable@file_dt=2016-12-05/event_time=2016-12-04"}]}
猛击