了解 Hive SQL 如何在 Spark 中执行
Understanding how Hive SQL gets executed in Spark
我是 spark 和 hive 的新手。我需要了解在 Spark 中查询配置单元 table 时会发生什么。我正在使用 PySpark
例如:
warehouse_location = '\user\hive\warehouse'
from pyspark.sql import SparkSession
spark =SparkSession.builder.appName("Pyspark").config("spark.sql.warehouse.dir", warehouse_location).enableHiveSupport().getOrCreate()
DF = spark.sql("select * from hive_table")
在上面的例子中,实际的 SQL 运行 是在 spark 框架中还是在 Hive 的 MapReduce 框架中 运行
我只是想知道 SQL 是如何处理的。在 Hive 还是在 Spark 中?
SparkSQL
允许在 Hive
表中读取和写入数据。除了 Hive
数据外,任何 RDD
都可以转换为 DataFrame
,并且 SparkSQL
可用于 运行 查询 DataFrame
.
实际执行将发生在 Spark
。您可以通过 运行ning a DF.count()
在您的示例中检查这一点,并通过 Spark UI
在 http://localhost:4040
.
跟踪作业
enableHiveSupport()
和 HiveContext
具有误导性,因为它们表明与 Hive 有更深层次的关系。
实际上,Hive 支持意味着 Spark 将使用 Hive Metastore 来读写元数据。在 2.0 之前有 (window 函数支持,更好的解析器),但今天不再是这种情况。
Hive 支持不暗示:
- 完整的 Hive 查询语言兼容性。
- Hive 上的任何形式的计算。
我是 spark 和 hive 的新手。我需要了解在 Spark 中查询配置单元 table 时会发生什么。我正在使用 PySpark
例如:
warehouse_location = '\user\hive\warehouse'
from pyspark.sql import SparkSession
spark =SparkSession.builder.appName("Pyspark").config("spark.sql.warehouse.dir", warehouse_location).enableHiveSupport().getOrCreate()
DF = spark.sql("select * from hive_table")
在上面的例子中,实际的 SQL 运行 是在 spark 框架中还是在 Hive 的 MapReduce 框架中 运行
我只是想知道 SQL 是如何处理的。在 Hive 还是在 Spark 中?
SparkSQL
允许在 Hive
表中读取和写入数据。除了 Hive
数据外,任何 RDD
都可以转换为 DataFrame
,并且 SparkSQL
可用于 运行 查询 DataFrame
.
实际执行将发生在 Spark
。您可以通过 运行ning a DF.count()
在您的示例中检查这一点,并通过 Spark UI
在 http://localhost:4040
.
enableHiveSupport()
和 HiveContext
具有误导性,因为它们表明与 Hive 有更深层次的关系。
实际上,Hive 支持意味着 Spark 将使用 Hive Metastore 来读写元数据。在 2.0 之前有
Hive 支持不暗示:
- 完整的 Hive 查询语言兼容性。
- Hive 上的任何形式的计算。