当试图使用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
如果您需要更多的数据或信息,请务必告诉我。。
暂无答案!
目前还没有任何答案,快来回答吧!