2

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

创建解析树。
2013 年 14 月 10 日 14:48:32 INFO ParseDriver:解析命令:从 B1 中选择 F1、SM3,其中 SM4 > 10 13 年 14 月 10
日 14:48:32 INFO 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
4

1 回答 1

2

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

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

于 2014-10-14T04:48:57.993 回答