不匹配的输入“来自”期望 <EOF>
Posted
技术标签:
【中文标题】不匹配的输入“来自”期望 <EOF>【英文标题】:Mismatched input 'from' expecting <EOF> 【发布时间】:2021-10-27 18:09:49 【问题描述】:好的,所以我正在尝试运行这段代码:
%%spark
spark.sql(f'''select t2.ANOT_PDA_PRD
,t2.VLR_PDA_PRD AS MAX_VLR_PDA
,(CASE t1.cd_gr_mdld_prd_pd
WHEN 7 THEN t3.DEF_B4
WHEN 8 THEN t3.DEF_B4
WHEN 9 THEN t3.DEF_B4
WHEN 10 THEN t3.DEF_B5
WHEN 11 THEN t3.DEF_B4
WHEN 12 THEN t3.DEF_B5
WHEN 13 THEN t3.DEF_B4
WHEN 14 THEN t3.DEF_B4
WHEN 15 THEN t3.DEF_B5
WHEN 16 THEN t3.DEF_B4
WHEN 17 THEN t3.DEF_B4
WHEN 18 THEN t3.DEF_B4
WHEN 22 THEN t3.DEF_B5
ELSE 0 END) AS TMP_QUALI
,T3.ANOT_PDA_CLI
from temp_vars_qlt as t1
left join temp_vars_qlt as t2
on t1.dt_mvtc = t2.dt_mvtc and t1.cd_cli = t2.cd_cli and T1.cd_gr_mdld_prd_pd=t2.cd_gr_mdld_prd_pd
left join temp_vars_qlt as t3
on t1.dt_mvtc = t3.dt_mvtc and t1.cd_cli = t3.cd_cli
where t1.dt_mvtc between(data_inicial , data_final)
''').createOrReplaceTempView("temp_safras_qlt_aux")
但我收到以下错误:
SparkStatementException: "\nmismatched input 'from' expecting <EOF>(line 19, pos 14)\n\n== SQL
==\nselect t2.ANOT_PDA_PRD\n ,t2.VLR_PDA_PRD AS MAX_VLR_PDA\n ,(CASE
t1.cd_gr_mdld_prd_pd\n WHEN 7 THEN t3.DEF_B4\n WHEN 8
THEN t3.DEF_B4\n .................
还有很多其他的行,但虽然不完全可读,但我相信重要的部分在第一行。
但我不知道"\nmismatched input 'from' expecting <EOF>
应该是什么意思。
所以,问题很简单:出了什么问题?
【问题讨论】:
【参考方案1】:between
语法是BETWEEN 2 AND 5
,试着把你的改成between data_inicial and data_final
【讨论】:
是的,我试过了。以前是这种语法。但是,在这种情况下,它会给出cannot resolve t1.dt_mvtc >= ((2017 - 1) - 31) due to data type mismatch: differing types (date and int)
。但是我仔细检查了 data_initial 和 data_final 是字符串,然后我尝试用 to_date()
进行更改,但它仍然引发同样的错误
所以这是你必须解决的问题,正如你所说,t1.dt_mvtc
是日期,data_inicial
和 data_final
是字符串,你看到的错误是 int?以上是关于不匹配的输入“来自”期望 <EOF>的主要内容,如果未能解决你的问题,请参考以下文章
不匹配的输入“>”在结构类型中期望 < 靠近“STRUCT”
正则表达式:匹配模式后跟一个空格但不匹配2个或更多空格或EOF
正则表达式限制输入框,只能输数字,当输入小数的时候,四舍五入为整数。
终端错误中的 SQL:不匹配的输入 ')' 期望(在原始类型规范中靠近 'VARCHAR'