从Hadoop Hue下载csv文件返回不可读的代码

时间:2017-02-03 20:20:44

标签: hadoop hive hdfs hue

我使用Apache Hue(用户界面)与Hadoop和Hive进行交互。

我将hive查询的结果保存在HDFS目录中。 (结果集非常大)

然后,我用hue文件浏览器下载了结果文件。

每件事看起来都很好,但是当我打开csv文件时,我发现分隔符是一些不可读的代码,如下所示:

enter image description here

如何解决分隔符问题?

2 个答案:

答案 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 ',' ...

参考HIVE-3682HIVE-5672

答案 1 :(得分:2)

我建议你用','代替吵闹的'SOH',然后直接删除'\ N'。

如果你使用python,它只是一个单行:

pd.read_csv("your_file.csv", sep="\001", na_values='\N']).to_csv("your_new_file.csv")