我使用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;
有人能帮助我如何使用此方法访问远程数据库/表吗?谢谢
1条答案
按热度按时间bcs8qyzn1#
将.enablehivesupport()添加到sparksession以访问配置单元目录