Спецификация списка столбцов в инструкции INSERT OVERWRITE - PullRequest
0 голосов
/ 28 ноября 2018

При попытке перезаписать таблицу Hive с определенными столбцами из Spark (Pyspark) с использованием фрейма данных, получая приведенную ниже ошибку

pyspark.sql.utils.ParseException: u"\nmismatched input 'col1' expecting {'(', 'SELECT', 'FROM', 'VALUES', 'TABLE', 'INSERT', 'MAP', 'REDUCE'}(line 1, pos 36)\n\n== SQL ==\ninsert OVERWRITE table DB.TableName (Col1, Col2, Col3) select Col1, Col2, Col3 FROM dataframe\n------------------------------------^^^\n"

На основе https://issues.apache.org/jira/browse/HIVE-9481 выглядит как column-list по-прежнему не поддерживается в INSERT OVERWRITE , поэтому при попытке запустить без ключевого слова overwrite выдается та же ошибка.

sparkSession.sql("insert into table DB.TableName (Col1, Col2, Col3) select Col1, Col2, Col3 FROM dataframe")

Примечание: вышеработает нормально, когда конкретный список столбцов не указан, а столбцы между таблицами совпадают.

Но при попытке сделать то же самое через Hive Terminal все в порядке.

INSERT INTO TABLE DB.TableName (Col1, Col2, Col3) select Col1, Col2, Col3 from DB.TableName2;

Если какое-либо свойство или конфигурация будут установлены или переданы через Spark-Submit

Пожалуйста, дайте мне знать, если вам нужно больше данных или информации ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...