簡體   English   中英

Pyspark無法到達配置單元

[英]Pyspark cannot reach hive

簡而言之:我在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為空。 我雖然就足夠了,因為在日志中我看到了

加載配置單元配置文件:文件:/etc/spark2/3.0.1.0-187/0/hive-site.xml

更有趣的是

注冊函數intersectgroups io.xxIntersectGroups

這是我編寫並手動添加到配置單元的UDF。 這意味着已完成某種連接。

我得到的唯一輸出(日志除外)是:

[Database(name = u'default',description = u'default database',locationUri = u'hdfs:// HdfsNameService / apps / spark / warehouse')]

我了解我應該在設置中設置spark.sql.warehouse.dir 不管是否將其設置為在hive-site中找到的值,我感興趣的數據庫的路徑(不在默認位置),它的父級,都沒有任何變化。

我在設置中放入了許多其他配置選項(包括節儉的uri),沒有任何更改。

我也看到我應該將hive-site.xml復制到spark2 conf目錄中。 我在群集的所有節點上進行了此操作,沒有任何更改。

我要運行的命令是:

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-submit --master yarn --jars /usr/hdp/current/hive_warehouse_connector/hive-warehouse-connector-assembly-1.0.0.3.0.1.0-187 .jar --py文件/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

在HDP 3.x中,您需要按照docs中所述使用Hive Warehouse Connector。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM