DataGrip:csv文件导出到hive出现中文乱码
出现原因:csv文件的编码格式不是utf-8
解决步骤:
1:转换CSV文件的编码:
将CSV文件的编码从GBK转换为UTF-8。你可以使用iconv命令(在Linux环境下)、文本编辑器(如Notepad++、VS Code等,它们支持编码转换)或编写一个简单的Python脚本来完成这一任务。
使用iconv的命令示例:
sudo iconv -f GBK -t UTF-8 "GBK文件路径.csv" -o "转换后的文件路径.csv";
tips:如果在你的系统中没有iconv命令,你可以通过以下几种方法来安装它,具体取决于你的操作系统:对于Linux系统使用包管理器安装:
-
- 在大多数Linux发行版中,
iconv通常是作为libc6-dev或glibc-devel等包的一部分安装的。你可以使用系统的包管理器来安装它。- 对于基于Debian的系统(如Ubuntu),你可以使用
apt-get:sudo apt-get updatesudo apt-get install libc6-dev - 对于基于RPM的系统(如CentOS、Fedora),你可以使用
yum(CentOS 7及之前版本)或dnf(Fedora和CentOS 8及更高版本):解释
sudo yum install glibc-devel # CentOS 7及之前# 或者sudo dnf install glibc-devel # Fedora和CentOS 8及更高版本 - 对于Arch Linux,你可以使用
pacman:sudo pacman -S glibc
- 对于基于Debian的系统(如Ubuntu),你可以使用
- 在大多数Linux发行版中,
- 将文件上传到hdfs
Hadoop fs -put input路径 output路径
3.在hive中建表
create table `表名`
(
列名 类型,
)row format delimited
fields terminated by ','//用,隔开
lines terminated by '\n'//用换行隔开
stored as textfile //存储成textfile
TBLPROPERTIES ("serialization.encoding"="UTF-8"); //编码格式为utf-8
4、并将csv文件上传到hive
LOAD DATA INPATH '路径.csv' OVERWRITE INTO TABLE 表名 ;
2662

被折叠的 条评论
为什么被折叠?



