hadoop - 如何在Hive中以纪元小时向表添加分区?

标签 hadoop hive hiveql

我以前曾经在每日分区中存储数据,

'2014/01/01
 2014/01/02'

我曾经使用添加分区
'ALTER TABLE reporting_events_raw ADD PARTITION(year='2014', month='01', day='01')
 LOCATION 'path/folder/2014/01/01';'

在创建表语句中,我们给出
'PARTITIONED BY (year string, month string, day string)'

现在,我们将以新纪元的小时格式创建新分区,例如
'folder/534800
 folder/534801
 folder/534802'

我无法弄清楚如何向表中添加分区。

谁能告诉我如何添加分区以及如何在create table语句中声明该分区类型。

最佳答案

时代不过是bigint的值(value)

'PARTITIONED BY (year string, month string, day string, epoch_hour bigint)'



您可以在插入覆盖查询中使用动态分区,
INSERT OVERWRITE TABLE abc PARTITION ( year, month , day , epoch_hour )
select 
col1,
col2,
'2014' as year,
'01' as month,
'01' as day,
UNIX_TIMESTAMP('2014-01-01 00:00:00') as epoch_hour
from source_table;

请注意,您还需要从我上面已经硬编码的数据中得出年,月,日。
让我们知道这是否对您有帮助。

关于hadoop - 如何在Hive中以纪元小时向表添加分区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26533992/

相关文章:

java - Apache Lens:启动服务器时出错

hadoop - 失败的 map task 超出允许的限制,并显示错误:org.apache.pig.data.Typle.isNull()Z

syntax - Hive:将列标题写入本地文件?

hadoop - 在HiveQL中喜欢任何功能

regex - Hadoop Hive与Python正则表达式等效

java - 扩展一个扩展 Hadoop 的 Mapper 的类

hadoop - 如何在 hive 中的多个列上查找变量的频率?

hadoop - HiveQL 和排名()

sql - Hadoop Hive 中这些表的最有效设计?

hadoop - 尝试从Oracle导入数据到HIVE时出错