在python中使用jdbc从spark连接到远程配置单元时找不到远程数据库?

cgh8pdjw  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(403)

我使用pyspark脚本通过jdbc驱动程序从远程配置单元读取数据。我尝试过使用enablehivesupport的其他方法,即hive-site.xml。但由于某些限制(从集群外部启动yarn作业的访问被阻止),这种技术对我来说是不可能的。下面是我连接到Hive的唯一方法。

from pyspark.sql import SparkSession

spark=SparkSession.builder \
        .appName("hive") \
        .config("spark.sql.hive.metastorePartitionPruning", "true") \
        .config("hadoop.security.authentication" , "kerberos") \
        .getOrCreate()

jdbcdf=spark.read.format("jdbc").option("url","urlname")\
        .option("driver","com.cloudera.hive.jdbc41.HS2Driver").option("user","username").option("dbtable","dbname.tablename").load()
spark.sql("show tables from dbname").show()

给我以下错误:

py4j.protocol.Py4JJavaError: An error occurred while calling o31.sql.
: org.apache.spark.sql.catalyst.analysis.NoSuchDatabaseException: Database 'vqaa' not found;

有人能帮助我如何使用此方法访问远程数据库/表吗?谢谢

bcs8qyzn

bcs8qyzn1#

将.enablehivesupport()添加到sparksession以访问配置单元目录

相关问题