我使用Apache Hue(用户界面)与Hadoop和Hive进行交互。
我将hive查询的结果保存在HDFS目录中。 (结果集非常大)
然后,我用hue文件浏览器下载了结果文件。
每件事看起来都很好,但是当我打开csv文件时,我发现分隔符是一些不可读的代码,如下所示:
如何解决分隔符问题?
答案 0 :(得分:2)
SOH (标题的开头)或其Seq等效 Ctrl + A 是Hive使用的默认字段分隔符。并且所有\N
代表NULL。
解决方法取决于使用的Hive版本
从Hive 0.11.0开始,可以指定使用的分离器;在早些时候 版本它总是^ A字符(\ 001)。但是,定制 只有Hive版本0.11.0中的LOCAL写入才支持分隔符 到1.1.0 - 版本1.2.0中已修复此错误
如果使用Hive> = 1.2.0,您可以在FIELDS TERMINATED BY
语句中指定INSERT OVERWRITE
子句来选择分隔符。
INSERT OVERWRITE DIRECTORY hdfs_directory SELECT statement ...
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',' ...
答案 1 :(得分:2)
我建议你用','代替吵闹的'SOH',然后直接删除'\ N'。
如果你使用python,它只是一个单行:
pd.read_csv("your_file.csv", sep="\001", na_values='\N']).to_csv("your_new_file.csv")