into语句语法

4uqofj5v  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(503)

在阅读datastax文档以了解sparksql支持的语法时,我注意到您可以使用 INSERT 你通常会这样说:

INSERT INTO hello (someId,name) VALUES (1,"hello")

在spark 2.0(python)环境和mysql数据库连接中进行测试时,会抛出错误:

File "/home/yawn/spark-2.0.0-bin-hadoop2.7/python/lib/pyspark.zip/pyspark/sql/utils.py", line 73, in deco
pyspark.sql.utils.ParseException: 
u'\nmismatched input \'someId\' expecting {\'(\', \'SELECT\', \'FROM\', \'VALUES\', \'TABLE\', \'INSERT\', \'MAP\', \'REDUCE\'}(line 1, pos 19)\n\n== SQL ==\nINSERT INTO hello (someId,name) VALUES (1,"hello")\n-------------------^^^\n'

但是,如果删除显式列定义,它将按预期工作:

INSERT INTO hello VALUES (1,"hello")

我错过什么了吗?

woobm2wo

woobm2wo1#

spark支持配置单元语法,所以如果您想插入行,您可以按如下操作

insert into hello select t.* from (select 1, 'hello') t;

相关问题