提示
Spark SQL 教程 正在筹划编写中,使用过程中有任何建议,提供意见、建议、纠错、催更加微信 gairuo123。
LIMIT 子句用于约束 SELECT 语句返回的行数。通常,本子句与 ORDER BY 结合使用,以确保结果具有确定性。
Spark SQL 的 LIMIT 子句结构为:
LIMIT { ALL | integer_expression }
参数:
ALL:如果指定,查询将返回所有行。换句话说,如果指定了此选项,则不会应用任何限制。
integer_expression:指定返回整数的可折叠表达式(foldable expression)。
以下是一些示例讲解:
CREATE TABLE person (name STRING, age INT);
INSERT INTO person VALUES
('Zen Hui', 25),
('Anil B', 18),
('Shone S', 16),
('Mike A', 25),
('John A', 18),
('Jack N', 16);
-- Select the first two rows.
SELECT name, age FROM person ORDER BY name LIMIT 2;
+------+---+
| name|age|
+------+---+
|Anil B| 18|
|Jack N| 16|
+------+---+
-- Specifying ALL option on LIMIT returns all the rows.
SELECT name, age FROM person ORDER BY name LIMIT ALL;
+-------+---+
| name|age|
+-------+---+
| Anil B| 18|
| Jack N| 16|
| John A| 18|
| Mike A| 25|
|Shone S| 16|
|Zen Hui| 25|
+-------+---+
-- 作为限制输入的函数表达式
SELECT name, age FROM person ORDER BY name LIMIT length('SPARK');
+-------+---+
| name|age|
+-------+---+
| Anil B| 18|
| Jack N| 16|
| John A| 18|
| Mike A| 25|
|Shone S| 16|
+-------+---+
-- 不允许使用不可折叠的表达式作为 LIMIT 的输入
SELECT name, age FROM person ORDER BY name LIMIT length(name);
--- org.apache.spark.sql.AnalysisException: The limit expression must evaluate to a constant value ...
更新时间:2021-07-29 23:29:32 标签:sql spark limit