HIVE ЗАГРУЖАЕТ ДАННЫЕ ПО ПУТИ

#hadoop #hive

#hadoop #улей

Вопрос:

Я попытался создать таблицу в 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

Выполнение вышеуказанного привело к следующей ошибке:

Ошибка: Ошибка при компиляции инструкции: СБОЙ: SemanticException не удается загрузить данные в таблицу назначения. Ошибка: файл, который вы пытаетесь загрузить, не соответствует формату файла целевой таблицы. (состояние = 42000, код = 40000)

Кто-нибудь может помочь решить эту проблему?

Ответ №1:

Поместите файл непосредственно в расположение таблицы.

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

Замените местоположение назначения местоположением вашей таблицы. Вы можете проверить это с помощью DESCRIBE FORMATTED tablename .

Ответ №2:

Вы можете загружать данные в таблицу несколькими способами!! Но убедитесь, что формат таблицы допустим.

  • Сначала поместите конкретную таблицу в расположение таблицы.

    Синтаксис: hadoop fs -помещает исходный код_пути в целевое назначение_hive_table_location

    Пример: hadoop fs -поместите APPL.csv /user/test.db/apple/APPL.csv

  • После того, как файл находится в файловой системе Hadoop, мы можем загрузить файл в таблицу с помощью команды load в консоли hive

загружает данные по пути ‘/user/test.db/apple/APPL.csv’ в таблицу apple ;

PS: Вы загружаете CSV data.so убедитесь, что таблица имеет правильный формат файла ввода и вывода текста.

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

Ответ №3:

Возможно, это связано с созданием вашей таблицы, у меня была та же ошибка, я решил ее, добавив «СОХРАНЕНО КАК ТЕКСТОВЫЙ ФАЙЛ» в конце запроса hive при создании таблицы

ранее моя таблица была

     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;
  

Надеюсь, это поможет 🙂

Ответ №4:

Как сказал Випин Сони, речь идет о формате таблицы hive, в которой мы ее сохраняем.

 Store as textfile;
  

решил эту проблему и для меня