导入CSV格式的数据到hive表格和insert 导入 hive,中文乱码问题
一、insert 插入数据中文乱码
hive写入数据的方式有三种,最为熟知的insert ,但是在用insert 单句执行的时候,中文导入是会出现乱码的,我试了网上大家给出来的解决方法,好像都不行,最后终于找到了一个方法
insert overwrite table mergeflie select 1,decode(binary('维护'),'utf-8'),18;
用这个语句就可以解决insert插入数据中文乱码的问题
二、导入csv格式的数据到hive表格
但是,假如数据很多的时候,我们这样插入不太方便。可以把数据编辑成csv的格式,直接导入hive的表格中。
首先在hive里面创表
create table if not exists ods.mergeflie(
id string,
name string,
age int
)row format delimited fields terminated by ','
lines terminated by '\n';
然后把本地的csv文件上传到hdfs相对于hive表的文件夹下
hdfs dfs -put /export/datas/mergeflie.csv /user/hive/warehouse/ods.db/mergeflie/
/export/datas/ 这个路径是我Linux上放文件的路径,
/user/hive/warehouse/dldev.db/这个路径是hive中ods层在hdfs上存放表的路径
然后在hive的ods层查询这个表,就会有数据了