pyspark无法到达Hive

pu82cl6c  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(416)

简而言之:我在hdp3上有一个工作Hive,我无法从pyspark上够到它,在Yarn下运行(在同一个hdp上)。如何让Pypark找到我的table? 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.x.x.intersectgroups
这是我手动编写并添加到配置单元的自定义项。这意味着有某种联系。
我得到的唯一输出(日志除外)是:
[数据库(name=u'default',description=u'default database',locationuri=u'hdfs://hdfsnameservice/apps/spark/warehouse')]
我明白我应该 spark.sql.warehouse.dir 在设置中。无论我将它设置为在配置单元站点中找到的值、我感兴趣的数据库的路径(它不在默认位置)、其父级,都不会更改。
我在设置中放置了许多其他配置选项(包括节俭uri),没有任何更改。
我也看到应该将hive-site.xml复制到spark2 conf目录中。我在集群的所有节点上都做了,没有改变。
我要运行的命令是:
hdp\u 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\u home=/usr/hdp/current/spark2 client hadoop\u user\u name=hive spark submit--master yarn--jars/usr/hdp/current/hive\u warehouse\u connector/hive-warehouse-connector-assembly-1.0.3.0.1.0-187.jar--py文件/usr/hdp/current/hive\u warehouse\u connector/pyspark\u hwc-1.0.0.3.0.1.0-187.zip--文件/etc/hive/conf/hive-site.xml./subanal/anal.py

j2qf4p5b

j2qf4p5b1#

在hdp3.x中,您需要使用文档中描述的hivewarehouse连接器。

相关问题