Есть ли способ использовать Impala вместо Hive в PySpark? - PullRequest
0 голосов
/ 25 марта 2020

У меня есть вопросы, которые работают в Impala, но не в Hive. Я создаю простой файл PySpark, например:

from pyspark import SparkConf, SparkContext
from pyspark.sql import SQLContext, HiveContext
sconf = SparkConf()
sc = SparkContext.getOrCreate(conf=sconf)
sqlContext = HiveContext(sc)

sqlContext.sql('use db1')
...

Когда я запускаю этот скрипт, его запросы получают ошибки, которые я получаю, когда запускаю их в редакторе Hive (они работают в редакторе Impala). Есть ли способ исправить это, чтобы я мог выполнять эти запросы в сценарии, используя Impala?

1 Ответ

1 голос
/ 29 марта 2020

Вы можете использовать Impala или HiveServer2 в Spark SQL через JDB C Источник данных . Для этого необходимо установить драйвер Impala JDB C и настроить подключение к Impala в приложении Spark. Но «вы можете» не означает «вы должны», потому что это приводит к накладным расходам и создает дополнительные зависимости без каких-либо особых преимуществ.

Обычно (и именно это пытается сделать ваше текущее приложение), Spark SQL работает непосредственно с базовой файловой системой, без необходимости go через координаторы HiveServer2 или Impala. В этом сценарии только Spark (повторно) использует Hive Metastore для извлечения метаданных - базы данных и определений таблиц.

...