hive-sql —— 新建空表,并上传数据(本地文件数据、HDFS文件数据)

hive-sql —— 新建空表,并上传数据(本地文件数据、HDFS文件数据),第1张

hive-sql —— 新建空表,并上传数据(本地文件数据、HDFS文件数据)

一般建表的时候要建外部表,这样一不小心删除的话,还能够恢复。

1、自己设计表结构,然后上传文件到该表中 1.1 新建表,并将本地csv文件上传到该表中(Linux命令行模式下)

准备本地文件,一般都是csv文件。

1、注意记下该文件的分隔符;
2、记下该文件字段名称和字段类型,以及字段顺序!!;
3、注意该文件是否有表头,如果有,在下面进行载入空表的时候,表头也会被当做数据传入表中。如果不需要,就把表头去掉,但是注意记下字段顺序;

建表
写好建表的sql文件,假设命名为create_table.sql,内容如下;

--create_table.sql内容如下
CREATE EXTERNAL TABLE IF NOT EXISTS algo_tinyv.sample_data (
user_id STRING COMMENT '用户唯一id',
order_id STRING COMMENT '订单编号'
)--注意字段顺序与上述文件字段的顺序要保持一致!!!!
--PARTITIonED BY(dt STRING) --分区
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' --以逗号作为分隔符
STORED AS TEXTFILE;

运行 hive -f create_table.sql

-f的含义是运行一个sql文件,若运行单个sql语句则是hive -e “select * from table”;

载入本地数据

运行 hive -e "load data local inpath 'sample_data.csv' overwrite into table 库名.表名 PARTITION(dt='字段名')"

1、overwrite的意思是覆盖表algo_tinyv.sample_data中的数据!
2、PARTITION:建一个分区表,如果没有可省略

1.2 新建表,并将hdfs文件上传到该表中(hive-sql模式下)

准备hdfs文件

1、注意记下该文件的分隔符;
2、记下该文件字段名称和字段类型,以及字段顺序!!;
3、注意该文件是否有表头,如果有,在下面进行载入空表的时候,表头也会被当做数据传入表中。如果不需要,就把表头去掉,但是注意记下字段顺序;

建空表并传入数据
hive-sql模式下,运行

use 库名; # 选择数据库
drop table 库名.表名;
create external table if not exists 库名.表名 (
appl_no string COMMENT '订单id',
score string COMMENT '分数'
)--注意字段顺序与上述文件字段的顺序要保持一致!!!!
row format delimited fields terminated by 't' --设置分隔符
lines terminated by 'n'
stored as textfile
location '/home/workdir/yourHDFSfile; --hdfs文件位置

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4827461.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-10
下一篇 2022-11-10

发表评论

登录后才能评论

评论列表(0条)

保存