При попытке перезаписать таблицу 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
Пожалуйста, дайте мне знать, если вам нужно больше данных или информации ..