建表后导入数据
Create table u_acts_event(devsn STRING, mac STRING, starttime int, endtime int, timespan int, upflow int, downflow int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' stored as textfile; load data local inpath '/home/manhua/PycharmProjects/kafka-7z/u_acts_event_withFlow.txt' overwrite into table u_acts_event;
LOAD DATA LOCAL ...会copy本地数据到位于分布式文件系统上的hive的数据目录,默认为/user/hive/warehouse/[table_name]
而LOAD DATA ...(也就是没有使用LOCAL)会move数据到hive的数据目录
这里可以理解为,Hive默认是处于分布式环境,使用LOCAL则会触发从本地上传到HDFS的操作,而没有LOCAL关键字的则只须移动文件即可
使用外部数据直接创建表
Create external table u_acts_event(devsn STRING, mac STRING, starttime int, endtime int, timespan int, upflow int, downflow int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' LOCATION '/home/manhua/PycharmProjects/kafka-7z/u_acts_event_withFlow';
使用该命令则不会移动文件,但是要求location的参数是一个目录