insert overwrite语句中的apachespark列列表规范

xa9qqrwz  于 2021-06-27  发布在  Hive
关注(0)|答案(0)|浏览(455)

当试图使用Dataframe用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 似乎在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 如果您需要更多的数据或信息,请务必告诉我。。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题