2016-05-12 10 views
0

Ich bin neu zu Hive und Spark SQL-Technologien.Ich hatte Limit-Klausel in Spark SQL versucht. aber ich unterstütze nur für bestimmte Grenze von Null bis zu diesem bestimmten Limit.Aber ich möchte Zeilen von einem bestimmten Startpunkt zu bestimmten Endpunkt abrufen.Können Sie bitte jemand eine Methode vorschlagen, um dies zu erreichen.Spark Sql Hive SQL-Abfrage mit mehr als einer Limit-Klausel

Query1 :: SELECT * FROM `Emp` LIMIT 10; - this query supports in both sql and spark sql 

aber

Query2 :: SELECT * FROM `Emp` LIMIT 10,20; - to retrive rows from 10 to 20 supports in sql, but not in spark sql. 

Antwort

0

Versuchen Sie, eine modifizierte LEFT JOIN:

SELECT a.* 
FROM 
(SELECT * FROM `Emp` LIMIT 20) a 
LEFT JOIN 
(SELECT * FROM `Emp` LIMIT 10) b 
ON a.primary_key=b.primary_key 
WHERE b.primary_key IS NULL 
+0

Wie kann ich diese Abfrage SELECT ausführen * FROM ' Emp "LIMIT 10,20; in Spark sql, um Zeilen zwischen 10 und 20 zu erhalten –

0

Sie ROW_NUMBER in HQL verwenden können

SELECT *,ROW_NUMBER over (Order by id) as rowid FROM `Emp` 
where rowid > 10 and rowid <=20; 
+0

Wie kann ich diese Abfrage ausführen SELECT * FROM 'Emp' LIMIT 10,20; in Spark sql, um Zeilen zwischen 10 und 20 –

+0

zu erhalten, ist das LIMIT 10,20 für MySQL gedacht. Ich bin mir nicht sicher, ob die gleiche Syntax in Spark funktioniert. Sie können die obige Abfrage dafür versuchen. –