Ошибка улья: parseexception отсутствует EOF

Я не уверен, что я делаю неправильно здесь:

hive> CREATE TABLE default.testtbl(int1 INT,string1 STRING)  
      stored as orc 
      tblproperties ("orc.compress"="NONE") 
      LOCATION "/user/hive/test_table";

      FAILED: ParseException line 1:107 missing EOF at 'LOCATION' near ')'

в то время как следующий запрос прекрасно работает:

hive>  CREATE TABLE default.testtbl(int1 INT,string1 STRING)  
       stored as orc 
       tblproperties ("orc.compress"="NONE");
       OK
       Time taken: 0.106 seconds

Я что-то упускаю. Любые указатели помогут. Спасибо!

5 ответов


попробуйте поставить " местоположение "перед" tblproperties", как показано ниже, сработало для меня.

CREATE TABLE default.testtbl(int1 INT,string1 STRING)  
  stored as orc 
  LOCATION "/user/hive/test_table"
  tblproperties ("orc.compress"="NONE");

Кажется, даже пример SQL из книги "Программирование улья" получил неправильный порядок. Пожалуйста, обратитесь к официальному определению команды create table:

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-CreateTable


@Haiying Wang указал, что LOCATION должен быть помещен перед tblproperties.

но я думаю, что ошибка также возникает, когда location указанного выше stored as.

лучше придерживаться правильного порядка:

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name    -- (Note: TEMPORARY available in Hive 0.14.0 and later)
  [(col_name data_type [COMMENT col_comment], ... [constraint_specification])]
  [COMMENT table_comment]
  [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
  [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
  [SKEWED BY (col_name, col_name, ...)                  -- (Note: Available in Hive 0.10.0 and later)]
     ON ((col_value, col_value, ...), (col_value, col_value, ...), ...)
     [STORED AS DIRECTORIES]
  [
   [ROW FORMAT row_format] 
   [STORED AS file_format]
     | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]  -- (Note: Available in Hive 0.6.0 and later)
  ]
  [LOCATION hdfs_path]
  [TBLPROPERTIES (property_name=property_value, ...)]   -- (Note: Available in Hive 0.6.0 and later)
  [AS select_statement];   -- (Note: Available in Hive 0.5.0 and later; not supported for external tables)

относятся: Улей Создать Таблицу


проверить этот пост:

загрузка данных из .txt-файл в таблицу, хранящуюся как ORC в Hive

и проверьте исходные файлы, присутствующие в указанном каталоге /user/hive/test_table. Если файлы находятся в .txt или какой-то другой non ORC формат, затем вы можете выполнить шаги в приведенном выше сообщении, чтобы выйти из ошибки.


ParseException строка lineNumber отсутствует EOF в '.'рядом 'схема':

получил вышеуказанную ошибку при попытке выполнить следующую команду из сценария linux для усечения таблицы улья

DSE-U username-p password hive-e " усечь пространство клавиш таблицы.tablename;"

исправления: Необходимо разделить команды в строке скрипта следующим образом -

DSE-U username-p password hive-e " использовать keyspace; усечение таблицы keyspace.tablename;"

удачи в кодировании!


получил ту же ошибку при создании таблицы в улей.

Я использовал команду drop, чтобы удалить таблицу, а затем снова запустить команду create table.

работал для меня.