python、pyspark连接hive/oracle

本文详细介绍了如何在Python和PySpark环境中配置并连接Oracle和Hive数据库,包括安装必要的客户端、配置环境变量、使用cx_Oracle和Impala进行Python数据库操作,以及通过jdbc方式在PySpark中读取Oracle数据。

前期准备

(写在前面,以下配置信息均是linux服务器操作配置。)

python连接时需要安装oracle客户端文件,pip安装cx_Oracle。
pyspark需要配置jdbc信息。

1.安装客户端

以下两个安装命令,需要获取服务器的root权限或sudo权限
rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm (1)
rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm (2)

如果安装未出现问题,则安装后,还需配置环境变量,输入 vim /etc/profile
进入环境变量配置页面,输入i,插入如下环境变量:

export ORACLE_HOME=/usr/lib/oracle/11.2/client64
export PATH=$PATH:$ORACLE_HOME/bin     
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/local/lib

最后按入Esc ,输入:wq!保存退出vim,然后运行 source /etc/profile 使配置生效。

2.安装cx_Oracle

用清华镜像直接进行pip安装:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple

或者可以在pypi网站下载对应python版本的cx_Oracle进行安装。

一、python

1.python连接oracle

import cx_Oracle
import pandas as pd
def 
#!/usr/bin/env python # @desc : todo 实现构建OracleHiveSparkSQL的连接 __coding__ = "utf-8" __author__ = "itcast" # 导包 from auto_create_hive_table.cn.itcast.utils import ConfigLoader # 导入配置文件解析包 import cx_Oracle # 导入Python连接Oracle依赖库包 from pyhive import hive # 导入Python连接Hive依赖包 import os # 导入系统包 # 配置Oracle的客户端驱动文件路径 LOCATION = r"D:\\instantclient_12_2" os.environ["PATH"] = LOCATION + ";" + os.environ["PATH"] def getOracleConn(): """ 用户获取Oracle连接对象:cx_Oracle.connect(host='', port='', username='', password='', param='') :return: """ oracleConn = None #构建Oracle连接对象 try: ORACLE_HOST = ConfigLoader.getOracleConfig('oracleHost') # 获取Oracle连接的主机地址 ORACLE_PORT = ConfigLoader.getOracleConfig('oraclePort') # 获取Oracle连接的端口 ORACLE_SID = ConfigLoader.getOracleConfig('oracleSID') # 获取Oracle连接的SID ORACLE_USER = ConfigLoader.getOracleConfig('oracleUName') # 获取Oracle连接的用户名 ORACLE_PASSWORD = ConfigLoader.getOracleConfig('oraclePassWord') # 获取Oracle连接的密码 # 构建DSN dsn = cx_Oracle.makedsn(ORACLE_HOST, ORACLE_PORT, ORACLE_SID) # 获取真正的Oracle连接 oracleConn = cx_Oracle.connect(ORACLE_USER, ORACLE_PASSWORD, dsn) # 异常处理 except cx_Oracle.Error as error: print(error) # 返回Oracle连接 return oracleConn def getSparkHiveConn(): """ 用户获取SparkSQL的连接对象 :return: """ # 构建SparkSQL的连接对象 sparkHiveConn = None try: SPARK_HIVE_HOST = ConfigLoader.getSparkConnHiveConfig('sparkHiveHost') # 获取Spark连接的主机地址 SPARK_HIVE_PORT = ConfigLoader.getSparkConnHiveConfig('sparkHivePort') # 获取Spark连接的端口 SPARK_HIVE_UNAME = ConfigLoader.getSparkConnHiveConfig('sparkHiveUName') # 获取Spark连接的用户名 SPARK_HIVE_PASSWORD = ConfigLoader.getSparkConnHiveConfig('sparkHivePassWord') # 获取Spark连接的密码 # 获取一个Spark TriftServer连接对象 sparkHiveConn = hive.Connection(host=SPARK_HIVE_HOST, port=SPARK_HIVE_PORT, username=SPARK_HIVE_UNAME, auth='CUSTOM', password=SPARK_HIVE_PASSWORD) # 异常处理 except Exception as error: print(error) # 返回连接对象 return sparkHiveConn def getHiveConn(): """ 用户获取HiveServer2的连接对象 :return: """ # 构建Hive连接对象 hiveConn = None try: HIVE_HOST= ConfigLoader.getHiveConfig("hiveHost") # 获取Hive连接的主机地址 HIVE_PORT= ConfigLoader.getHiveConfig("hivePort") # 获取Hive连接的端口 HIVE_USER= ConfigLoader.getHiveConfig("hiveUName") # 获取Hive连接的用户名 HIVE_PASSWORD= ConfigLoader.getHiveConfig("hivePassWord") # 获取Hive连接的密码 # 构建一个Hive连接对象 hiveConn = hive.Connection(host=HIVE_HOST,port=HIVE_PORT,username=HIVE_USER,auth='CUSTOM',password=HIVE_PASSWORD) # 异常处理 except Exception as error: print(error) # 返回Hive连接对象 return hiveConn # if __name__ == "__main__": # print(getSparkHiveConn()) # print(ConfigLoader.getSparkConnHiveConfig('sparkHiveHost')) # print(ConfigLoader.getSparkConnHiveConfig('sparkHivePort')) # print(ConfigLoader.getSparkConnHiveConfig('sparkHiveUName')) # print(ConfigLoader.getSparkConnHiveConfig('sparkHivePassWord')) 连接不上hivespark数据库是什么情况
最新发布
11-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值