Понимание того, как Hive SQL выполняется в Spark - PullRequest
0 голосов
/ 07 мая 2018

Я новичок в искре и улье. Мне нужно понять, что происходит за спиной при запросе таблицы улья. Я использую PySpark

Ex:

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 или в среде MapReduce Hive.

Мне просто интересно, как обрабатывается SQL. В улье или в искре?

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

enableHiveSupport() и HiveContext вводят в заблуждение, поскольку они предполагают более глубокие отношения с Hive.

На практике поддержка Hive означает, что Spark будет использовать Hive metastore для чтения и записи метаданных. До версии 2.0 там некоторые дополнительные преимущества (поддержка оконных функций, лучший анализатор), но сегодня это уже не так.

Поддержка улья не подразумевает:

  • Полная совместимость с языком запросов Hive.
  • Любая форма вычислений в Hive.
0 голосов
/ 07 мая 2018

SparkSQL позволяет читать и записывать данные в Hive таблицы. В дополнение к Hive данным любой RDD может быть преобразован в DataFrame, а SparkSQL может использоваться для выполнения запросов к DataFrame.

Фактическое выполнение произойдет Spark. Вы можете проверить это в своем примере, запустив DF.count() и отследив работу с помощью Spark UI в http://localhost:4040.

...