在Python中使用JDBC从Spark连接到远程Hive时找不到远程数据库吗?

问题描述 投票:-2回答:1

我正在使用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;

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

apache-spark jdbc hive pyspark pyspark-sql
1个回答
0
投票

将.enableHiveSupport()添加到您的sparksession中以访问配置单元目录

© www.soinside.com 2019 - 2024. All rights reserved.