Pyspark не может добраться до улья - PullRequest
0 голосов
/ 19 декабря 2018

Вкратце: у меня есть рабочий куст на hdp3, которого я не могу достать из pyspark, работающего под пряжей (на том же hdp).Как заставить pyspark найти мои таблицы?

spark.catalog.listDatabases() показывать только по умолчанию, ни один прогон запросов не будет отображаться в моих журналах кустов.

Это мой код с помощью spark 2.3.1

from pyspark.sql import SparkSession
from pyspark.conf import SparkConf
settings = []
conf = SparkConf().setAppName("Guillaume is here").setAll(settings)
spark = (
    SparkSession
    .builder
    .master('yarn')
    .config(conf=conf)
    .enableHiveSupport()
    .getOrCreate()
)
print(spark.catalog.listDatabases())

Обратите внимание, что settings пусто.Я думаю, этого было бы достаточно, потому что в логах я вижу

Загрузка файла конфигурации куста: file: /etc/spark2/3.0.1.0-187/0/hive-site.xml

и более интересно

Регистрация функции intersectgroups io.xxIntersectGroups

Это UDF, который я написал и добавил в куст вручную.Это означает, что какая-то связь установлена.

Единственный вывод, который я получаю (кроме журналов):

[База данных (name = u'default ', description = u'default database', locationUri = u'hdfs:// HdfsNameService / apps / spark / warehouse ')]

Я понимаю, что в настройках должен быть установлен spark.sql.warehouse.dir.Неважно, установлю ли я значение, найденное в hive-site, путь к интересующей меня базе данных (он не находится по умолчанию), его родительский элемент, ничего не изменится.

Я положил много другихПараметры конфигурации в настройках (включая Thrift Uris), без изменений.

Я также видел, что я должен скопировать hive-site.xml в директорию conf spark2.Я сделал это на всех узлах моего кластера, без изменений.

Моя команда для запуска:

HDP_VERSION = 3.0.1.0-187 PYTHONPATH =.: / Usr / hdp /current / spark2-client / python /: / usr / hdp / current / spark2-client / python / lib / py4j-0.10.7-src.zip SPARK_HOME = / usr / hdp / current / spark2-client HADOOP_USER_NAME = улей spark-представить --master yarn --jars /usr/hdp/current/hive_warehouse_connector/hive-warehouse-connector-assembly-1.0.0.3.0.1.0-187.jar --py-files / usr / hdp / current / hive_warehouse_connector /pyspark_hwc-1.0.0.3.0.1.0-187.zip --files /etc/hive/conf/hive-site.xml ./subjanal/anal.py

1 Ответ

0 голосов
/ 19 декабря 2018

В HDP 3.x вам необходимо использовать Hive Warehouse Connector, как описано в документах .

...