我正在使用pyspark脚本通过JDBC驱动程序从远程Hive读取数据。我尝试了使用enableHiveSupport,Hive-site.xml的其他方法。但是由于某些限制,这种技术对我来说是不可能的(访问被阻止,无法从群集外部启动纱线作业)。下面是我连接到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;
有人可以帮助我如何使用此方法访问远程数据库/表吗?谢谢
将.enableHiveSupport()添加到您的sparksession中以访问配置单元目录