基于时间戳列的年/月的分区配置单元表

时间:2016-07-08 14:48:46

标签: postgresql hadoop hive sqoop hiveql

我有一个hive表,我使用sqoop从Postgres导入。该表由updated_at列组成,该列具有时间戳值。我正在尝试按此时间戳值的年份和月份对表进行分区。有没有办法从时间戳中提取部件以在分区语句中使用。

我当前的策略是将表直接导入hive,然后创建一个分区表并使用INSERT OVERWRITE TABLE用分区填充表。

CREATE TABLE zips_part(id int,code string,timezone_offset int, timezone_d boolean) PARTITIONED BY(updated_at timestamp)

下一步是覆盖此表

insert overwrite table zips_part PARTITION(updated_at) select z.id, z.updated_at, z.code, z.timezone_offset, z.timezone_d FROM zip_codes z;

(继续http://kickstarthadoop.blogspot.com/2011/06/how-to-speed-up-your-hive-queries-in.html中提到的步骤)

我尝试使用年份的日期部分功能,但它不起作用。

这个给出了解析错误

insert overwrite table zips_part PARTITION(year(updated_at)) select z.id, z.updated_at, z.code, z.timezone_offset, z.timezone_d FROM zip_codes z;

这个给出了类似的解析错误

insert overwrite table zips_part PARTITION(year=year(updated_at)) select z.id, z.updated_at, z.code, z.timezone_offset, z.timezone_d FROM zip_codes z;

0 个答案:

没有答案