【问题标题】:download the csv file from Hadoop Hue returns unreadable code从 Hadoop Hue 下载 csv 文件返回不可读的代码
【发布时间】:2017-02-03 20:20:44
【问题描述】:

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

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

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

一切看起来都很好,但是当我打开 csv 文件时,我发现分隔符是一些不可读的代码,像这样:

如何解决分隔符问题?

【问题讨论】:

    标签: hadoop hive hdfs hue


    【解决方案1】:

    SOH(标题开始)或其 Seq 等效项 Ctrl + A 是 Hive 使用的默认字段分隔符。所有\N 都代表NULL。

    解决方案取决于使用的 Hive 版本

    从 Hive 0.11.0 开始,可以指定使用的分隔符;在早些时候 版本始终是 ^A 字符 (\001)。然而,自定义 仅 Hive 版本 0.11.0 中的本地写入支持分隔符 到 1.1.0 – 这个错误在 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 ',' ...
    

    请参阅 HIVE-3682HIVE-5672

    【讨论】:

      【解决方案2】:

      我会建议你把嘈杂的 'SOH' 替换为 "," 并直接删除 '\N'。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-10
        • 2021-10-27
        • 2012-12-18
        • 1970-01-01
        • 2021-09-04
        • 1970-01-01
        • 2017-01-01
        • 1970-01-01
        相关资源
        最近更新 更多