理解什么是映射
1、首先呢,在指定的目录下创建一个hive文件夹作为我们存储数据文件的一个地方。
mkdir hivedata
2、编辑一个文本文件内容:
vim 1.txt
1,张三,21
2,李四,20
3,蔡英文,54
3、将文件上传到hdfs上
现在hdfs上也创建一个hivedata来存放数据文件(–在hdfs的根目录下创建hivedata文件夹)
hdfs dfs -mkdir /hivedata
4、将我们的数据文件上传到hdfs的hivedata目录下
hdfs dfs -put 1.txt /hivedata (在你的本地上的hivedata目录下执行)
5、打开hive命令行窗口:
先启动hdfs和yarn
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
yarn-daemon.sh start resuorcemanager
yarn-daemon.sh start nodemanager
再去启动你的mysql数据库:
cd /usr/local/mysql
sudo ./support-files/mysql.server start
最后启动你的hive
bin/hive
展示一下你的数据库:show databases;
创建一个数据库:create database itcast;
使用这个数据库:use itcast;
创建一张表:create table t_u1(id int, name string, age int) row format delimited fields terminated by ‘\t’;
6、去hdfs上看一下我们的hive的默认的路径。
/user/hduser/warehouse/
7、需要将我们的数据文件放到你建立的表的目录下:hdfs dfs -cp /hivedata/1.txt /user/hive/warehouse/itcast.db/t_u1
8、再去查询一下你的表里的内容:select * from t_u1;
9、我们需要查询它的数据有几条:
select count(*) from t_u1;
分隔符
hive建表语法中的分隔符设定
ROW FORMAT DELIMITED 分隔符设置开始语句
FIELDS TERMINATED BY:设置字段与字段之间的分隔符
COLLECTION ITEMS TERMINATED BY:设置一个复杂类型(array,struct)字段的各个item之间的分隔符
MAP KEYS TERMINATED BY:设置一个复杂类型(Map)字段的key value之间的分隔符
LINES TERMINATED BY:设置行与行之间的分隔符
例如:
数据1如下:
zhangsan beijing,shanghai,xiamen,hangzhou
wangwu tonglu,chengdu,guiyang,bijie
create table t_u2(name string,work_locations array< string>)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t’