当前位置: 首页 > 知识库问答 >
问题:

如何通过身份验证从spark连接远程配置单元

公良鸿禧
2023-03-14

直线>!连接JDBC:hive2://bigdatamr:10000/default连接到JDBC:hive2://bigdatamr:10000/default输入JDBC:hive2://bigdatamr:10000/default:myusername输入JDBC:hive2://bigdatamr:10000/default:myusername输入密码/bigdatamr:10000/default:********连接到:Apache配置单元(版本1.2.0-mapr-1703)驱动程序:Hive JDBC(版本1.2.0-mapr-1703)事务隔离:TRANSACTION_REPEATABLE_READ

我如何将它转换成使用Spark?我尝试了thrift和jdbc但都不起作用

我的小尝试,不知道如何通过认证

from pyspark.sql import SparkSession
spark = SparkSession\
    .builder.master("yarn")\
    .appName("my app")\
    .config("hive.metastore.uris", "thrift://bigdatamr:10000")\
    .enableHiveSupport()\
    .getOrCreate()

我的jdbc try,throw方法不支持

jdbcDF = spark.read \
    .format("jdbc") \
    .option("url", "jdbc:hive2://bigdatamr:10000") \
    .option("dbtable", "default.tmp") \
    .option("user", "myusername") \
    .option("password", "xxxxxxx") \
    .load()
Py4JJavaError: An error occurred while calling o183.load.

:java.sql.sqlexception:不支持方法

共有1个答案

景明诚
2023-03-14

您需要在spark.read的选项中指定正在使用的驱动程序:

.option("driver", "org.apache.hive.jdbc.HiveDriver")

此外,由于某些原因,您必须在jdbc url中指定数据库,并使用选项dbtable指定表的名称。由于某些原因,简单地将dbtable定义为database.table是行不通的。

它看起来应该是这样的:

jdbcDF = spark.read \
    .format("jdbc") \
    .option("driver", "org.apache.hive.jdbc.HiveDriver") \
    .option("url", "jdbc:hive2://bigdatamr:10000/default")
    .option("dbtable", "tmp") \
    .option("user", "myusername") \
    .option("password", "xxxxxxx") \
    .load()
 类似资料:
  • 我正在运行带有公开WebSocketendpoint的服务器。下面是我的: 问题是如何使用或或查询参数实现建立WS连接的身份验证? 更好的选择是避免使用Spring Security。 多谢了。

  • 问题内容: sqlalchemy是Python的数据库连接模块,默认情况下使用SQL身份验证(数据库定义的用户帐户)。如果要使用Windows(域或本地)凭据对SQL Server进行身份验证,则必须更改连接字符串。 默认情况下,按照sqlalchemy的定义,连接到SQL Server的连接字符串如下: 如果使用您的Windows凭据使用,则会引发类似于以下的错误: 在此错误消息中,代码1845

  • 问题内容: 我是kubernetes的新手,我只是通过kubeadm安装kubernetes并运行仪表板UI,但无法配置对它的访问。在文档之后,我将行添加到/etc/kubernetes/manifests/kube- apiserver.yaml,创建文件并放入一个字符串,如。但是在该api服务器崩溃之后,删除此字符串并重新启动服务器后,它又恢复了正常。如何在不使api服务器崩溃的情况下将该参数

  • 我是Spring安全的新手,我想用数据库验证用户。我已经用jdbc创建了一个登录页面和一个身份验证提供程序,它检查用户是否存在于数据库中。但是我的代码没有这样做的问题是,它允许所有用户登录!我的代码怎么了?谢谢你的帮助。 这是我的安全会议。xml:

  • 我正在将Monolith Java/Spring服务器重写为MicroService,同时向客户机公开相同的API接口,这样他们就不会注意到任何更改。 在Monolith服务器中,我们使用和。 第一部分是创建一个基于Java的API-Gateway,它将处理所有身份验证/授权作为通往Monolith服务器的隧道。 创建新的微服务(使用spring Initializer)后,我尝试将spring