web-dev-qa-db-fra.com

'<EOF>' dans la source de la sous-requête dans la requête Hive

J'exécute une requête sur Hive similaire à:

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

l'erreur est:

cannot recognize input near '<EOF>' '<EOF>' '<EOF>' in subquery source
7
Cyrus

L'ajout d'un alias de table pour votre sous-requête est nécessaire pour Hive. Ci-dessous, j'utilise 't1' comme alias:

SELECT *
FROM (SELECT a
  FROM b
  WHERE
  sex = 'M'
  AND   degree = 'Bs'
  AND   age = 15
  AND   name LIKE 'L%'
  ) t1 ;
18
a m Sreekanth

Tous les votes négatifs sont injustifiés. Hive ne produit souvent pas d'erreur correcte et vous jette un "EOF" paresseux. Dans ce cas, il vous suffit de spécifier un alias de table pour votre sous-requête. SELECT * FROM (.....) tbl_alias

2
Abay Bektursun