大数据:Spark直连Oracle数据库

前面我们已经把大数据平台搭建完成了,接下来是怎么应用大数据这件威力巨大的武器了。因为作者目前在一家传统型制造企业,很多业务和数据都是基于传统关系型数据库展开的,数据源大部分都存在Oracle、Mysql、PostgreSQL等传统关系型数据库,所以如何跟大数据平台建立联系,或者说让大数据技术更接地气,是应用大数据技术最好的实践。本文从一个初学者的角度去实践Spark访问Oracle数据库的过程。
1.创建测试数据

SQL> create table student
  2  (id number,
  3  name varchar(20),
  4  age number);

表已创建。

添加数据

SQL> insert into student values
  2  (2,'Leo',2);

2.启动集群
基于前面搭建好的大数据平台,调用启动集群脚本start-cluster.sh,启动完成后登陆http://master:50070 和http://master:8080网页访问Hadoop和Spark,验证集群有没有启动成功。
3.Spark直连Oracle
3.1. 集群成功启动后,进入Shell,因为笔者采用的是python脚本,所以通过pyspark命令来实现数据库操作任务,在spark集群上启动pyspark命令如下:
在这里插入图片描述

下载完jdbc驱动后得到的是一个ojdbc6.jar文件,为了方便管理,一定要把这个jar包放在${SPARK_HOME}/jars目录下,这个目录是存放跟spark交互相关的jar包的。

3.3. 通过pyspark交互平台查询数据库表结构和表里面的数据。

empDF = spark.read \
    .format("jdbc") \
    .option("url", "jdbc:oracle:thin:username/password@//hostname:portnumber/SID") \
    .option("dbtable", "hr.emp") \
    .option("user", "db_user_name") \
    .option("password", "password") \
    .option("driver", "oracle.jdbc.driver.OracleDriver") \
    .load()
    empDF.printSchema()
    empDF.show()

自己的代码

>>> empDF =spark.read\
...  .format("jdbc")\
...  . option("url","jdbc:oracle:thin:system/Hejun52191314@//127.0.0.1:1521/ORCL")\
...  . option("dbtable","student")\
...  . option("user","system")\
...  . option("password","Hejun52191314")\
...  . option("drive","oracle.ojdbc.driver.OracleDriver")\
...  . load()
>>>

在这里插入图片描述
至此,Spark直连Oracle数据库完成。

发布了68 篇原创文章 · 获赞 15 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42913025/article/details/102615305