【问题标题】:HIVE LOAD DATA INPATHHIVE 加载数据路径
【发布时间】:2020-07-02 21:19:33
【问题描述】:

我尝试使用以下命令在 hive 中创建一个表:

CREATE TABLE apple (dates STRING, open INT, high INT, low INT, close INT, adj_close DECIMAL, vol INT) row format delimited fields terminated by ',' lines terminated by '\n' tblproperties ("skip.header.line.count"="1");**

然后我尝试使用命令加载数据:

LOAD DATA INPATH '/user/root/stockdata/APPL.csv' OVERWRITE INTO TABLE apple;

文件APPL.csv存储在HDFS中

执行上述导致以下错误:

错误:编译语句时出错:FAILED: SemanticException 无法将数据加载到目标表。错误:您的文件 尝试加载与目标文件格式不匹配 桌子。 (状态=42000,代码=40000)

有人可以帮忙解决这个问题吗?

【问题讨论】:

    标签: hadoop hive


    【解决方案1】:

    将文件直接放入表位置。

    hdfs dfs -copyFromLocal /user/root/stockdata/APPL.csv' /user/<username>/apple 
    

    用您的餐桌位置替换目标位置。您可以使用DESCRIBE FORMATTED tablename 进行检查。

    【讨论】:

      【解决方案2】:

      您可以通过多种方式将数据加载到表中!!但请确保表格格式有效。

      • 先把具体的表放到表位置。

        语法:hadoop fs -put source_path destination_hive_table_location

        例如:hadoop fs -put APPL.csv /user/test.db/apple/APPL.csv

      • 一旦文件在Hadoop文件系统中,我们可以通过hive控制台中的load命令将文件加载到表中

      将路径'/user/test.db/apple/APPL.csv'中的数据加载到苹果表中;

      PS:您正在加载 CSV 数据。因此请确保表格具有正确的文本输入和输出文件格式。

      STORED AS INPUTFORMAT
        'org.apache.hadoop.mapred.TextInputFormat'
      OUTPUTFORMAT
        'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
      

      【讨论】:

        【解决方案3】:

        也许这与您的表的创建有关 我遇到了同样的错误,我通过在表创建的配置单元查询的末尾添加“STORED AS TEXTFILE”来解决它

        之前我的桌子是

            CREATE TABLE %(output_db)s.%(selected_query_tbl)s
            (
               query                     VARCHAR(255)
              ,ATC_beyond_10_percentage  DECIMAL(25,25)
              ,ATC_rate                  DECIMAL(25,25)
              ,block_5_tau               DECIMAL(25,25)
              ,Kendall_tau               DECIMAL(25,25)
            );
        

        现在是

             CREATE TABLE %(output_db)s.%(selected_query_tbl)s
            (
               query                     VARCHAR(255)
              ,ATC_beyond_10_percentage  DECIMAL(25,25)
              ,ATC_rate                  DECIMAL(25,25)
              ,block_5_tau               DECIMAL(25,25)
              ,Kendall_tau               DECIMAL(25,25)
            )STORED AS TEXTFILE;
        

        希望对你有帮助:)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-06
          相关资源
          最近更新 更多