不匹配的输入“来自”期望 <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 &lt;EOF&gt; 应该是什么意思。

所以,问题很简单:出了什么问题?

【问题讨论】:

【参考方案1】:

between 语法是BETWEEN 2 AND 5,试着把你的改成between data_inicial and data_final

【讨论】:

是的,我试过了。以前是这种语法。但是,在这种情况下,它会给出cannot resolve t1.dt_mvtc &gt;= ((2017 - 1) - 31) due to data type mismatch: differing types (date and int)。但是我仔细检查了 data_initial 和 data_final 是字符串,然后我尝试用 to_date() 进行更改,但它仍然引发同样的错误 所以这是你必须解决的问题,正如你所说,t1.dt_mvtc 是日期,data_inicialdata_final 是字符串,你看到的错误是 int?

以上是关于不匹配的输入“来自”期望 <EOF>的主要内容,如果未能解决你的问题,请参考以下文章

不匹配的输入“>”在结构类型中期望 < 靠近“STRUCT”

正则表达式:匹配模式后跟一个空格但不匹配2个或更多空格或EOF

正则表达式限制输入框,只能输数字,当输入小数的时候,四舍五入为整数。

终端错误中的 SQL:不匹配的输入 ')' 期望(在原始类型规范中靠近 'VARCHAR'

不匹配的输入 'org' 期望在表文件格式规范中靠近 'BY' 的 StringLiteral

HDU - 6178:Monkeys (贪心&树上最大匹配输&输入优化)