2015-08-10 3 views
1

Я подключился к улью с помощью бережливого сервера. И я использую beeline для запроса таблиц.Невозможно вставить значения в таблицу hive с использованием beeline

Я могу видеть существующие таблицы и в состоянии выполнять select/aggregate на этих таблицах.

Я также возможность создания таблиц и баз данных, но когда я пытаюсь вставить значения в таблицу, я получаю следующее сообщение об ошибке:

15/08/10 13:02:32 WARN ThriftCLIService: Error executing statement: 
org.apache.hive.service.cli.HiveSQLException: org.apache.spark.sql.hive.HiveQl$ParseException: Failed to parse: **insert into table test values("kundan")** 
     at org.apache.spark.sql.hive.thriftserver.SparkExecuteStatementOperation.run(Shim13.scala:192) 
     at org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementInternal(HiveSessionImpl.java:231) 
     at org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementAsync(HiveSessionImpl.java:218) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.apache.hive.service.cli.session.HiveSessionProxy.invoke(HiveSessionProxy.java:79) 
     at org.apache.hive.service.cli.session.HiveSessionProxy.access$000(HiveSessionProxy.java:37) 
     at org.apache.hive.service.cli.session.HiveSessionProxy$1.run(HiveSessionProxy.java:64) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at javax.security.auth.Subject.doAs(Subject.java:415) 
     at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121) 
     at org.apache.hadoop.hive.shims.HadoopShimsSecure.doAs(HadoopShimsSecure.java:493) 
     at org.apache.hive.service.cli.session.HiveSessionProxy.invoke(HiveSessionProxy.java:60) 
     at com.sun.proxy.$Proxy12.executeStatementAsync(Unknown Source) 
     at org.apache.hive.service.cli.CLIService.executeStatementAsync(CLIService.java:233) 
     at org.apache.hive.service.cli.thrift.ThriftCLIService.ExecuteStatement(ThriftCLIService.java:344) 
     at org.apache.hive.service.cli.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1313) 
+0

Просьба указать более подробную информацию, например. ваше определение таблицы 'test'. – mattinbits

+0

Ниже приводится схема тестовой таблицы: col_name: Имя тип_данных: VARCHAR (64) –

+0

Пожалуйста, дайте полный 'CREATE определение TABLE', а также какая версия Hive вы используете. – mattinbits

ответ

0

В улье не представляется возможным, чтобы вставить значения непосредственно в таблицу улья вы можете сделать это тремя способами.

  1. Вы можете вставлять значения из одной таблицы в другую таблицу с помощью команды insert.

напр: ВСТАВИТЬ в таблицу tablename1 [РАЗДЕЛА (partcol1 = знач1, partcol2 = знач2 ...)] select_statement1 ОТ from_statement;

2.Загрузка данных в таблицу с использованием входного файла из hdfs или из локального местоположения.

Для экс: LOAD DATA [LOCAL] INPATH 'путь_к_файлу' [OVERWRITE] INTO TABLE имя_таблицы [PARTITION (partcol1 = val1, partcol2 = значение2 ...)];

3.Загрузка данных в таблицу при создании самой таблицы с использованием входного файла.

напр: CREATE TABLE 'имени таблицы' (поля) СТРОКА FORMAT DELIMITED ПОЛЯ TERMINATED BY '' хранится как TEXTFILE LOCATION '';

+0

Это определенно можно вставить в таблицу улья. – Marcin

+0

Привет @Marcin. Используя общий смысл, мы можем сказать, что запрос на вставку будет работать. Но этот ответ правильный. По умолчанию мы не можем вставлять данные, используя запрос insert в ** бережливый сервер ** из apache spark.Please, если у вас есть ответ , –

+0

@ Satyanarayana.Ruppa Просмотрите весь этот раздел документации по вставке: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML#LanguageManualDML-InsertingdataintoHiveTablesfromqueries – Marcin

Смежные вопросы