【问题标题】:Unable to load .csv data from hdfs into Hive table in Hadoop无法将 .csv 数据从 hdfs 加载到 Hadoop 中的 Hive 表中
【发布时间】:2020-10-13 21:56:00
【问题描述】:

我正在尝试将 csv 文件加载到 Hive 表中。我需要通过 HDFS 完成。

我的最终目标是让 Hive 表也连接到 Impala 表,然后我可以将其加载到 Power BI 中,但是我无法填充 Hive 表。

我使用以下代码在 Hive 查询编辑器中创建了一个表:

CREATE TABLE IF NOT EXISTS dbname.table_name (
    time_stamp TIMESTAMP COMMENT 'time_stamp',
    attribute STRING COMMENT 'attribute',
    value DOUBLE COMMENT 'value',
    vehicle STRING COMMENT 'vehicle',
    filename STRING COMMENT 'filename')

然后我使用以下代码检查并查看 LOCATION:

SHOW CREATE TABLE dbname.table_name;

并发现它已转到默认位置: hdfs://our_company/user/hive/warehouse/dbname.db/table_name

于是我转到HDFS中的上述位置,手动上传了几个csv文件,这些文件与我创建的表的五列格式相同。这是我希望将这些数据加载到 Hive 表中的地方,但是当我回到 Hive 中的 dbname 并打开我创建的表时,所有值仍然为空,当我尝试在浏览器中打开时,我得到:

数据库错误 AnalysisException:无法解析路径:'dbname.table_name'

然后我尝试以下代码:

LOAD DATA INPATH 'hdfs://our_company/user/hive/warehouse/dbname.db/table_name' INTO TABLE dbname.table_name;

它运行良好,但 Hive 中的表仍未填充。

我还尝试使用 CREATE EXTERNAL TABLE 代替上述所有方法,并在 LOCATION 参数中指定 HDFS。我还尝试先创建一个 HDFS 位置,上传 csv 文件,然后使用指向预制 HDFS 位置的 LOCATION 参数创建外部表。

我已经确定我有授权权限。

无论我尝试哪种方法,我的表格都不会填充 csv 文件。

我在这里做错了什么?

【问题讨论】:

    标签: csv hadoop hive hdfs hiveql


    【解决方案1】:

    我能够使用以下方法解决问题:

    CREATE TABLE IF NOT EXISTS dbname.table_name (
        time_stamp STRING COMMENT 'time_stamp', 
        attribute STRING COMMENT 'attribute', 
        value STRING COMMENT 'value', 
        vehicle STRING COMMENT 'vehicle', 
        filename STRING COMMENT 'filename') 
        ROW FORMAT DELIMITED 
        FIELDS TERMINATED BY ',' 
        STORED AS TEXTFILE
    

    LOAD DATA INPATH 'hdfs://our_company/user/hive/warehouse/dbname.db/table_name' OVERWRITE INTO TABLE dbname.table_name;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多