2016-05-12 97 views
0

我是新来蜂巢和火花sql technologies.I曾尝试火花sql中的限制子句。但它只支持从零开始到特定限制的特定限制。但我想要从特定起点检索行到特定的终点。可以请任何人提出实现此目的的方法。Spark Sql Hive与多个限制子句sql查询

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

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

回答

0

尝试修改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

我怎么能执行这个查询SELECT * FROM' Emp' LIMIT 10,20;在Spark sql中获取10到20之间的行 –

0

您可以使用ROW_NUMBER在HQL

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

如何执行此查询SELECT * FROM'Emp' LIMIT 10,20;在Spark sql中获取10到20之间的行 –

+0

LIMIT 10,20是针对MySQL的。我不确定相同的语法是否可以在Spark中使用。你可以尝试上面的查询。 –