一、加载CSV文件数据到hive表步骤:
1、Hive上建表,通常会指定字段分隔符为逗号(row format delimited fields terminated by ‘,’ )
2、导入CSV文件
二、实操
以csv 文件中出现字段中含有逗号的场景为例:{“2020”: “1”,“2022”: “8”,“2024”: “25”}
1、建表
CREATE TABLE ads.mem_continue_order_y (
member_id string comment '会员号'
,trans_info string comment '消费订单-年汇总信息')
COMMENT '会员连续下单_年_推送表'
row format serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde' -- 使用 OpenCSVSerde 作为数据序列化程序
with serdeproperties (
'separatorChar' = ',', -- 分隔符
'quoteChar' = '"', -- 引号包围符号
'escapeChar' = '\' -- 转义字符
)
tblproperties("skip.header.line.count"="1") -- 跳过文件首行(当csv存在文件头的情况)
;
如果不使用tblproperties(“skip.header.line.count”=“1”),也可用sed -i ‘1d’ 文件名 删除文件首行
2、加载CSV文件数据:
此处的文件目录是linux本地文件目录,所以是LOCAL INPATH
LOAD DATA LOCAL INPATH '/home/bgyetl/etl/tmp/mem_continue_order_y.csv' overwrite INTO TABLE ads.mem_continue_order_y;