Hive中定义变量内置命名空间
Hive内置命名空间包含了hivevar、hiveconf、system和env。在Hive中写入hivevar变量
hive --define/--hivevar key=value显示变量
set env:HOME
set hivevar:key
set key给变量赋值
set key=value
set hivevar:key=value在sql语句中调用变量
create table table_name(i int, ${hivevar:key} string)
create table table_name(i int, ${key} string)
只执行一次的Hive脚本
echo "one row" > /root/path/myfile
hive -e "load data local inpath '/root/path/myfile' into table table_name"
在Hive中执行shell命令
hive>!pwd
在Hive中使用hadoop
hive>dfs -ls
JDBC时间和UTC时间之间的相互转换指定了格式的转换
from_unixtime(unix_timestamp('20180930',"yyyyMMdd"),'yyyyMMdd')为空生成当前的unix时间戳
hive> select unix_timestamp();
unix_timestamp(void) is deprecated. Use current_timestamp instead.
OK
1547438004转换成当前的UTC时间戳
hive> select from_unixtime(unix_timestamp());
unix_timestamp(void) is deprecated. Use current_timestamp instead.
OK
2019-01-14 13:27:12UTC时间格式为
YYYY-MM-DD hh:mm:ss.ffffffff
集合数据类型struct:需要事前定义好格式
map: 类似于struct,但不是事前定义好格式的
array: 数组数据类型
create table employees(
name string,
salary float,
subordinates array,
deductions map,
address struct
)
Hive数据库的基本操作指定Hive数据库的路径
create database database_name
location '/my/preferred/directory'查看Hive数据库的路径
describe database database_name创建Hive数据库的扩展信息
create database database_name
WITH DBPROPERTIES ('creator' = 'name', 'date' = '2019-01-09');查看所创建的扩展信息
describe database extended database_name修改数据库属性
ALTER DATABASE database_name SET DBPROPERTIES ('edited-by' = 'tjm', 'date' = '2019-01-09')
Hive数据表的基本操作表的