进入hive
1、进入hadoop
2、输入export HADOOP_USER_NAME=hdfs(不输的话建数据库等操作可能不行)
3、输入hive进入hive,看到hive>就成功了
操作
新建数据库
create database dbname;
使用数据库
use database_name;
显示有的数据库
show databases;
删除数据库
drop database if exists database_name;
删库的时候要注意准备删的库里面没有表
创建表格
create table table_names(
id int,
name1 string,
…
)
row format delimited fields terminated by ‘,’ ;
以“,”为分隔符,单元格内有“,”会影响文档的导入,要么把单元格里的","改掉或者把文档的分隔符改了
显示数据库里的表格
show tables;
删表(不保留结构)
drop table if exists table_name;
把本地的csv文件导入表里
load data local inpath ‘/文件路径/文件名.csv’ overwrite into table table_name;
显示表格内容
select * from table_name;
select * from table_name order by 参数名;//以一定格式显示
显示表格结构
describe table_name;
注意事项:
1、命名的时候名字里面不要有空格和“-”,可以用“_”代替
2、select时想要显示列名(字段名)可以输入set hive.cli.print.header=true; 退出hive就会失效
3、列名(字段名)有特殊符号或者中文可以用``(1旁边的键)框起来
报错
1、ParseException line 10:21 cannot recognize input near ‘,’ ‘WCR_ClassName’ ‘string’ in column type
看看有没有使用系统保留名了,我是因为前面定义的时候变量名和变量类型之间没打空格
2、ParseException line 14:43 mismatched input ‘,’ expecting StringLiteral near ‘by’ in table row format’s field separator
看by旁边的符号,如果是直接从这里复制过去要重新打一次单引号,中文的单引号改为英语单引号
3、光标变成黑块
点击Del键
4、Expression not in GROUP BY key ‘Division_Name’
在 Group by 子句中,Select 查询的列,要么需要是 Group by 中的列,要么得是用聚合函数(比如 sum、count 等)加工过的列。
5、Value had a \n character in it.
set 完后没有写;