【问题标题】:mismatched input ';' expecting <EOF>(line 1, pos 90)输入不匹配';'期待 <EOF>(第 1 行,第 90 行)
【发布时间】:2019-10-31 10:46:34
【问题描述】:

我正在尝试使用 spark SQL 获取 zeppelin 中的多行。

这是我的 SQL 语句:

select id, name from target where updated_at = "val1", "val2","val3"

这是我收到的错误消息:

输入不匹配';'期待 (第 1 行,位置 90)

【问题讨论】:

  • 您是否尝试在语句末尾添加分号?例如:%sql select id, name from target where updated_at = "val1", "val2","val3";
  • Zeppelin 不接受分号 ; 作为终止符,它会在处理自身时添加终止符。

标签: apache-spark-sql apache-zeppelin


【解决方案1】:

不确定您的确切要求是什么,但您的匹配条件不符合 SQL 语法标准。如果您的要求与此相符,则以下语句将起作用:

select id, name from target where updated_at in ('val1', 'val2','val3')

【讨论】:

  • @AnkitaWankhede,如果有效,请您接受答案:)
【解决方案2】:

如果有人像我一样在 Spark 的 selectExpr 函数中收到此错误:selectExpr 的正确用法不是包含逗号分隔的列名列表的字符串,而是列名列表:

spark_df.selectExpr("id, name")  # ouch, wrong
> mismatched input ';' expecting <EOF>(line 1, pos xy)

spark_df.selectExpr("id", "name")     # right!
> DataFrame[..]

spark_df.selectExpr(*["id", "name"])  # correct too!
> DataFrame[..]

【讨论】:

    猜你喜欢
    • 2020-04-28
    • 2021-12-10
    • 2022-12-06
    • 1970-01-01
    • 2023-03-20
    • 2022-09-27
    • 1970-01-01
    • 2022-06-21
    • 2022-01-05
    相关资源
    最近更新 更多