ParseException:输入时没有可行的替代方案

问题描述 投票:0回答:3

我尝试在 Azure 数据块中运行以下查询。

query=s"""WITH pre_file_user AS(
            SELECT id,
            typeid,
          CASE when dttm is null or dttm='' then cast('1900-01-01 00:00:00.000' as timestamp)
          else cast(dttm as timestamp)
          end as dttm
          from dde_pre_file_user_supp
)"""

spark.sql(query)

然后我收到以下错误

ParseException:在输入“with pre_file_users AS”时没有可行的替代方案 ( 选择 ID, 典型的,以防万一 当 dttm 为 null 或 dttm = '' 时 演员('1900-01-01 00:00:00.000 作为时间戳) 以 dttm 结尾 从 dde_pre_file_user_supp )'

我可以在数据块中使用WITH子句吗?还是有其他选择吗?

sql apache-spark pyspark apache-spark-sql azure-databricks
3个回答
6
投票

我已经提到了可能导致“输入时没有可行的替代方案”错误的原因:

  1. 当我们键入不适合该行上下文的字符时,会出现“输入时没有可行的替代方案”错误消息。
  2. 还要检查某些字段的数据类型是否可能不匹配。
“输入时没有可行的替代方案”

错误没有提及我们使用了哪个不正确的字符。 参考

this

piotrwest 的回答 另请参考这篇

文章


0
投票

例如

SELECT new ${Foo.class.name} (f.id, f.active FROM FooDomain f



0
投票
native query = true

请不要忘记检查一下。

© www.soinside.com 2019 - 2024. All rights reserved.