无法在Spark集群模式下执行Oracle存储过程

时间:2019-02-16 12:12:02

标签: python-3.x apache-spark oracle11g pyspark apache-spark-2.0

我正在使用pyspark,在我的程序中,我正在创建数据帧并将数据插入Oracle DB。但是无法从pyspark调用Oracle存储过程,所以我编写了python函数,使用cx_Oracle调用存储过程。下面是代码

代码:

import cx_Oracle  
import datetime  

def oracle_sp_Call(id,status):  
     print('Inside func of sp calling')  
     print(id)  
     print(status)  
     dns_tns=cx_Oracle.makedsn('server','port',service_name='servie_name')  
     con=cx_Oracle.onnect(user='username',passwor='password',dsn=dns_tns)  
     #Placing my sername user id pwd an deatils  
     print('connection established')  
     cur=con.cursor()  
     myvar=cur.var(cx_Oracle.NUMBER)  
     curdate=datetime.datetime.now()  
     cur.callproc('Sp_Name',(id,status,curdate,myvar))  
     con.commit()  
     cur.close()  
     con.close()  

我的问题是,当我在客户端模式下提交pyspark作业时,它执行得很好,但是当我在集群模式下提交时,它无法连接oracle服务器。
错误是“尝试为错误ora-24296检索文本时出错” 。 我正在使用MapR分发,并且已在所有节点上安装了oracle客户端,并且还能够在所有节点客户端模式下执行相同的作业。

0 个答案:

没有答案