首页 > 解决方案 > 使用 Oracle 钱包从 Spark 连接到 Oracle

问题描述

我想使用 Oracle 的钱包确保 Oracle 与 PySpark 的连接。

就目前而言,我正在硬编码凭据并使用以下内容执行工作连接:

    # Connection properties
    driver='oracle.jdbc.driver.OracleDriver'
    connString='jdbc:oracle:thin:@1.1.1.1.sample/SID'
    user='user'
    pwd='pwd' 
    jdbc_dict = {'driver':driver, 
               'connection':connString, 
               'user':user, 
               'pwd':pwd }
    
    df_table = spark.read.format('jdbc')\
                    .option('driver',jdbc_dict['driver'])\
                    .option('url',jdbc_dict['connection'])\
                    .option('dbtable',table_name)\
                    .option('user',jdbc_dict['user'])\
                    .option('password',jdbc_dict['pwd']).load()

现在,我正在转移到另一个环境,并希望从代码中删除凭据。

假设我已经在我的客户端上正确创建了一个 Wallet,如何更改之前显示的代码以使其与 Wallet 一起使用?

我相信我必须以某种方式指出钱包的路径,但找不到任何有关 Spark 的适当文档,更准确地说,PySpark。

标签: oracleapache-sparkpysparkcredentialsoracle-wallet

解决方案


在 yarn Cluster 模式下使用带有 --files 参数的 yarn 将钱包复制到您的节点。然后只需将其读取为本地文件路径


推荐阅读