6. insert 语句
1) 因为目标表有partition, 所以刚开始我使用的语句是
insert overwrite table sa_r_item_sales_day_week_month partition(part=FROM_UNIXTIME(UNIX_TIMESTAMP(),'yyyy-MM-dd'))
select ...
然而报错:
Error while compiling statement: FAILED: ParseException cannot recognize input near 'FROM_UNIXTIME' '(' 'UNIX_TIMESTAMP' in constant
原因: 语法不对
2) 正确语法:
insert overwrite table sa_r_item_sales_day_week_month partition(part='2015-12-17')
或者
insert overwrite table sa_r_item_sales_day_week_month partition(part='${part}') --part就是你穿进去的参数
??
变量在哪赋值或声明 尚不清楚
7. datetime 并没有这个类型
time
FROM_UNIXTIME(UNIX_TIMESTAMP()) 可以获得现在的年月日时分秒;
2016-01-21 10:41:26 |
CURRENT_DATE 和 CURRENT_TIMESTAMP
8. 分号字符
9. hive文件上传后,中文显示为乱码
因为hive的数据是保存在HDFS里的,所以保存文件时,选择UTF8即可。
10. Hive 删除列
alter table product replace columns(name string);
-- 原列为id, name
-- 会把列往前移动,前面的列被抹掉,但文件格式不变,只是不显示
11. impala 和hive 相通,impala是计算引擎
1)invalidate metadata;
- 如果在hive里面做了新增、删除数据库、表或者数据等更新操作,需要执行在impala里面执行此命令,才能将hive的数据同步impala;
- 如果直接在impala里面新增、删除数据库、表或者数据,会自动同步到hive,无需执行任何命令。
2)impala sql 只能写insert into,不能overwrite