“错误”;输入不匹配'@';期待{lt;EOF>;,';';}”;在SQLContext.SQL中使用SQL查询时

“错误”;输入不匹配'@';期待{lt;EOF>;,';';}”;在SQLContext.SQL中使用SQL查询时,sql,pyspark,Sql,Pyspark,正如标题所提到的,当我这样尝试时 Email = '123456@gmail.com' datanum = '3' sqlContext.sql("SELECT * FROM table WHERE E-mail = "+Email+" order by record date DESC Limit "+datanum).show() 它显示错误:不匹配的输入“@”应为{,;} 然而,当我尝试以下方法时 sqlContext.sql("SEL

正如标题所提到的,当我这样尝试时

Email = '123456@gmail.com'
datanum = '3'

sqlContext.sql("SELECT * FROM table WHERE E-mail = "+Email+" order by record date DESC Limit "+datanum).show()
它显示错误:不匹配的输入“@”应为{,;}

然而,当我尝试以下方法时

sqlContext.sql("SELECT * FROM table WHERE E-mail = 123456@gmail.com order by record date DESC Limit 3").show()

一切正常。为什么?我更喜欢上面的一个,不知道如何让它工作。请与我分享您的想法,我将非常感激。

哦。。。电子邮件和记录日期都是这样:
电子邮件
记录日期
,以上只是打字错误。现在我明白了。。。无论如何,对字符串文本使用直接引号,如
'123456@gmail.com“
。您应该使用参数而不是字符串替换。SQL注入…@jarlh我确实使用了直接引号。@jarlh噢!我想我明白了你的意思,并让它发挥作用。谢谢。