Hive查询中子查询源中的"<EOF>"

Cyr*_*rus 13 sql hive

我在Hive上运行查询类似于:

SELECT *
FROM (SELECT a
      FROM b
      WHERE
      sex = 'M'
      AND   degree = 'Bs'
      AND   age = 15
      AND   name LIKE 'L%'
      );
Run Code Online (Sandbox Code Playgroud)

错误是:

cannot recognize input near '<EOF>' '<EOF>' '<EOF>' in subquery source
Run Code Online (Sandbox Code Playgroud)

小智 25

为Hive添加子查询的表别名是必需的.下面我使用't1'作为别名:

SELECT *
FROM (SELECT a
  FROM b
  WHERE
  sex = 'M'
  AND   degree = 'Bs'
  AND   age = 15
  AND   name LIKE 'L%'
  ) t1 ;
Run Code Online (Sandbox Code Playgroud)


Aba*_*sun 6

所有的反对票都是不合理的。Hive 通常不会产生正确的错误,而是向您抛出懒惰的“EOF”。在这种情况下,您只需要为子查询指定表别名。SELECT * FROM (.....) tbl_alias

  • 我猜一些 Hive 粉丝只是对任何提到 Hive 错误的内容投反对票 (2认同)