【问题标题】:Spark SQL: Why this unsupported language feature error for simple query?Spark SQL:为什么简单查询出现这种不受支持的语言功能错误?
【发布时间】:2014-12-07 19:44:41
【问题描述】:

查询 = 从 B1 中选择 F1,SM3,其中 SM4 > 10

解析树已创建。
14/10/13 14:48:32 INFO ParseDriver:解析命令:从 B1 中选择 F1、SM3,其中 SM4 > 10
2013 年 14 月 10 日 14:48:32 信息 ParseDriver:解析完成

但是在节点到计划翻译中,它根本就失败了!解决方法是删除 where 子句..

TOK_QUERY
 TOK_FROM
  TOK_TABREF
   TOK_TABNAME
    B1
TOK_INSERT
  TOK_DESTINATION
   TOK_DIR
    TOK_TMP_FILE
TOK_SELECT
  TOK_SELEXPR
    TOK_TABLE_OR_COL
      F1
  TOK_SELEXPR
    TOK_TABLE_OR_COL
      SM3
TOK_WHERE
  >
    TOK_TABLE_OR_COL
      SM4
    10

【问题讨论】:

  • 我觉得Spark SQL现阶段最好是去邮件列表问问:user@spark.apache.org
  • 我遇到了类似的问题,最终不得不使用两个查询。首先我做了 SELECT * WHERE 东西并注册了一个新的临时表,然后我做了我真正的查询。这行得通,但很麻烦。
  • 您使用的是什么版本的 Spark?你能提供一个short example that reproduces the issue吗?

标签: sql apache-spark apache-spark-sql


【解决方案1】:

我认为该错误可能是因为我将 Spark (SQL) 1.1.0 与 Hive 0.13 二进制文件一起使用。

我发现解析器无法将“10”识别为有效数值,尽管它被正确标记(它的标记类型为 290,如代码中所示)。在删除 Hive 0.13 引用时,它似乎有效!

【讨论】:

    猜你喜欢
    • 2017-08-13
    • 2016-03-22
    • 2020-03-30
    • 1970-01-01
    • 2023-01-14
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多