2ff1ac5d9f
## What changes were proposed in this pull request? In some cases, executeTake in SparkPlan could decode more than necessary. For example, in case of below odd/even number partitioning, total row's count from partitions will be 100, although it is limited with 51. And 'executeTake' in SparkPlan decodes all of them, "49" rows of which are unnecessarily decoded. ```scala spark.sparkContext.parallelize((0 until 100).map(i => (i, 1))).toDF() .repartitionByRange(2, $"_1" % 2).limit(51).collect() ``` By using a iterator of the scalar collection, we can make ensure that at most n rows are decoded. ## How was this patch tested? Existing unit tests that call limit function of DataFrame. testOnly *SQLQuerySuite testOnly *DataFrameSuite Closes #22347 from Dooyoung-Hwang/refactor_execute_take. Authored-by: Dooyoung Hwang <dooyoung.hwang@sk.com> Signed-off-by: Wenchen Fan <wenchen@databricks.com> |
||
---|---|---|
.. | ||
catalyst | ||
core | ||
hive | ||
hive-thriftserver | ||
create-docs.sh | ||
gen-sql-markdown.py | ||
mkdocs.yml | ||
README.md |
Spark SQL
This module provides support for executing relational queries expressed in either SQL or the DataFrame/Dataset API.
Spark SQL is broken up into four subprojects:
- Catalyst (sql/catalyst) - An implementation-agnostic framework for manipulating trees of relational operators and expressions.
- Execution (sql/core) - A query planner / execution engine for translating Catalyst's logical query plans into Spark RDDs. This component also includes a new public interface, SQLContext, that allows users to execute SQL or LINQ statements against existing RDDs and Parquet files.
- Hive Support (sql/hive) - Includes an extension of SQLContext called HiveContext that allows users to write queries using a subset of HiveQL and access data from a Hive Metastore using Hive SerDes. There are also wrappers that allow users to run queries that include Hive UDFs, UDAFs, and UDTFs.
- HiveServer and CLI support (sql/hive-thriftserver) - Includes support for the SQL CLI (bin/spark-sql) and a HiveServer2 (for JDBC/ODBC) compatible server.
Running sql/create-docs.sh
generates SQL documentation for built-in functions under sql/site
.