Ошибка улья: 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.
работал для меня.