从 Hadoop Hue 下载 csv 文件 returns 无法读取的代码
download the csv file from Hadoop Hue returns unreadable code
我使用 Apache Hue(用户界面)与 Hadoop 和 Hive 交互。
我将配置单元查询的结果保存在 HDFS 目录中。 (结果集真的很大)
然后,我用hue文件浏览器下载了结果文件。
一切看起来都很好,但是当我打开 csv 文件时,我发现分隔符是一些不可读的代码,如下所示:
如何解决分隔符问题?
SOH(标题开始)或其 Seq 等效项 Ctrl + A 是 Hive 使用的默认字段分隔符。而所有的\N
都代表NULL。
这个问题的解决方案取决于使用的 Hive 版本
As of Hive 0.11.0 the separator used can be specified; in earlier
versions it was always the ^A character ([=14=]1). However, custom
separators are only supported for LOCAL writes in Hive versions 0.11.0
to 1.1.0 – this bug is fixed in version 1.2.0
如果使用 Hive >= 1.2.0,您可以在 INSERT OVERWRITE
语句中指定 FIELDS TERMINATED BY
子句来选择分隔符。
INSERT OVERWRITE DIRECTORY hdfs_directory SELECT statement ...
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',' ...
我会建议你用“,”替换嘈杂的'SOH',并直接删除'\N'。
如果你使用python,它只是一个one-liner:
pd.read_csv("your_file.csv", sep="[=10=]1", na_values='\N']).to_csv("your_new_file.csv")
我使用 Apache Hue(用户界面)与 Hadoop 和 Hive 交互。
我将配置单元查询的结果保存在 HDFS 目录中。 (结果集真的很大)
然后,我用hue文件浏览器下载了结果文件。
一切看起来都很好,但是当我打开 csv 文件时,我发现分隔符是一些不可读的代码,如下所示:
如何解决分隔符问题?
SOH(标题开始)或其 Seq 等效项 Ctrl + A 是 Hive 使用的默认字段分隔符。而所有的\N
都代表NULL。
这个问题的解决方案取决于使用的 Hive 版本
As of Hive 0.11.0 the separator used can be specified; in earlier versions it was always the ^A character ([=14=]1). However, custom separators are only supported for LOCAL writes in Hive versions 0.11.0 to 1.1.0 – this bug is fixed in version 1.2.0
如果使用 Hive >= 1.2.0,您可以在 INSERT OVERWRITE
语句中指定 FIELDS TERMINATED BY
子句来选择分隔符。
INSERT OVERWRITE DIRECTORY hdfs_directory SELECT statement ...
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',' ...
我会建议你用“,”替换嘈杂的'SOH',并直接删除'\N'。
如果你使用python,它只是一个one-liner:
pd.read_csv("your_file.csv", sep="[=10=]1", na_values='\N']).to_csv("your_new_file.csv")