centos7下载spark连接mysql数据库提取数据(pyspark,Scala,python独立执行)
原文连接: http://dblab.xmu.edu.cn/blog/1724-2/
原文连接:https://mapr.com/support/s/article/PySpark-to-MySQL-connectivity?language=en_US (这个网址需要科学上网)
实验环境: centos7.6
spark: 2.4.3
python: 3.6.8
mysql: 5.6.38-log
首先,在home目录下建立jdbc文件夹,方便以后保存各种jdbc连接器
mkdir /home/jdbc
mkdir /home/jdbc/mysql
cd /home/jdbc/mysql
然后到
https://dev.mysql.com/downloads/connector/j/
下载一个MySQL的JDBC驱动
点击download
获取下载地址
https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-8.0.16.tar.gz
然后用wget下载到服务器上
wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-8.0.16.tar.gz
解压文件
tar -zxvf mysql-connector-java-8.0.16.tar.gz
cp -r mysql-connector-java-8.0.16 /usr/local/spark/spark-2.4.3-bin-hadoop2.7/jars
这时,你在jars下就可以看到你刚复制过来的mysql文件夹,文件夹中就有对应的jar文件
pyspark连接mysql数据库
下面,启动pyspark
cd /usr/local/spark/spark-2.4.3-bin-hadoop2.7/bin
./pyspark \
--jars /usr/local/spark/spark-2.4.3-bin-hadoop2.7/jars/mysql-connector-java-8.0.16/mysql-connector-java-8.0.16.jar \
--driver-class-path /usr/local/spark/spark-2.4.3-bin-hadoop2.7/jars/mysql-connector-java-8.0.16/mysql-connector-java-8.0.16.jar
上面的命令行中,在一行的末尾加入斜杠\,是为了告诉spark-shell,命令还没有结束。
启动进入pyspark以后,可以执行以下命令连接数据库,读取数据,并显示:
jdbcDF = spark.read.format("jdbc").option("url", "jdbc:mysql://localhost:3306/db_test").option("driver","com.mysql.cj.jdbc.Driver").option("dbtable", "temp_testsqqqq").option("user", "root").option("password", "123456").load()jdbcDF.show()
scala 连接mysql数据库
scala 的连接跟pyspark非常相似
前面一样需要下载MySQL的连接器,只是启动方式略有不同。
cd /usr/local/spark/spark-2.4.3-bin-hadoop2.7/bin
./spark-shell \
--jars /usr/local/spark/spark-2.4.3-bin-hadoop2.7/jars/mysql-connector-java-8.0.16/mysql-connector-java-8.0.16.jar \
--driver-class-path /usr/local/spark/spark-2.4.3-bin-hadoop2.7/jars/mysql-connector-java-8.0.16/mysql-connector-java-8.0.16.jar
进入spark-shell后
val jdbcDF = spark.read.format("jdbc").option("url", "jdbc:mysql://localhost:3306/db_test").option("driver","com.mysql.cj.jdbc.Driver").option("dbtable", "temp_testsqqqq").option("user", "root").option("password", "123456").load()jdbcDF.show()
python程序独立执行
import os
# sparkClassPath = os.getenv('SPARK_CLASSPATH', '/usr/local/spark/spark-2.4.3-bin-hadoop2.7/jars/mysql-connector-java-8.0.16/mysql-connector-java-8.0.16.jar')
os.environ['PYSPARK_SUBMIT_ARGS'] = '--jars /usr/local/spark/spark-2.4.3-bin-hadoop2.7/jars/mysql-connector-java-8.0.16/mysql-connector-java-8.0.16.jar ' \'--driver-class-path /usr/local/spark/spark-2.4.3-bin-hadoop2.7/jars/mysql-connector-java-8.0.16/mysql-connector-java-8.0.16.jar ' \'pyspark-shell'
# PYSPARK_SUBMIT_ARGS中填写具体的文件路径,与pyspark和scala的是一样的,注意空格间隔from pyspark import SparkContext, SparkConf ,SQLContext
from pyspark.sql import SparkSession
conf = SparkConf()
conf.setMaster("local[*]")
conf.setAppName('mysqltest')
# conf.set('spark.jars','files:%s'%sparkClassPath)
# conf.set('spark.executor.extraClassPath', sparkClassPath)
# conf.set('spark.driver.extraClassPath', sparkClassPath)
conf.getAll()sc = SparkContext(conf=conf)
sqlContext = SQLContext(sc)url = "jdbc:mysql://xxx.xxx.x.xxx:3306/db_test"
properties = {"user": "root","password": "123456","driver": "com.mysql.cj.jdbc.Driver"
}
df = sqlContext.read.jdbc(url=url, table="temp_testsqqqq", properties=properties)
查询结果
ssh://root@192.168.61.128:22/usr/local/python3/bin/python3.6 -u /tmp/pycharm_project_466/temp.py
19/06/10 04:53:16 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
19/06/10 04:53:33 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.
+---+--------------------------------------+----+----+--------------+--------------------+--------------------+
| id| key1|key2|key3| col1| col2| col3|
+---+--------------------------------------+----+----+--------------+--------------------+--------------------+
| 1| 中石化盛骏投资(深圳)有限公司|null|null| null| null| null...|
| 2| 深圳望正资产管理有限公司|null|null| null| null...| null...|
+---+--------------------------------------+----+----+--------------+--------------------+--------------------+
only showing top 20 rowsProcess finished with exit code 0
centos7下载spark连接mysql数据库提取数据(pyspark,Scala,python独立执行)相关推荐
- Android中连接MySql数据库获取数据的简单实现
文章目录 背景 demo布局 导入jar包 demo代码实现 权限设置 应用运行的结果 背景 一般情况下,Android与数据库中的数据进行交互都是通过调用api接口来实现的.但是今天我们就来尝试实现 ...
- 【工作笔记】如何在MySQL官网下载Java连接MySQL数据库的驱动jar包
我们在开发时,Java连接MySQL数据库需要驱动jar包,而驱动包的版本要跟MySQL数据库版本相匹配,以下介绍怎样在MySQL官网下载各MySQL数据库对应版本的驱动包. 1.登陆Oracle官网 ...
- Spark连接MySQL数据库并读取数据
(作者:陈玓玏) 打开pyspark,带驱动的那种 用命令行启动pyspark时需要加上jdbc的驱动路径: pyspark --driver-class-path D:/Users/chendile ...
- jdbc读取mysql数据库_Ecplise 中利用 JDBC 连接 Mysql 数据库读取数据
准备工作 将压缩包解压得到文件 mysql-connector-java-5.1.41-bin.jar 备用 打开 Mysql 控制台创建数据库及数据表,并插入测试数据.代码如下: CREATE DA ...
- jdbc连接mysql数据库驱动下载_Java Jdbc驱动下载配置连接mysql数据库方法代码
1.MySQL JDBC驱动下载 打开上面的下载地址,选择"Platform Independent",然后下载tar.gz或zip格式的都行,之后解压出来得到Jdbc驱动(mys ...
- java mysql 查询_java连接mysql数据库达成数据查询详细教程
前言:本篇文章适用于所有前后端开发者 众所周知,只要是编程,那肯定是需要存储数据的,无论是c语言还是java,都离不开数据的读写,数据之间传输不止,这也就形成了现代互联网的一种相互存在关系! 而读写存 ...
- ajax连接mysql数据库查询数据_ajax动态查询数据库数据并显示在前台的方法
今天做了一个ajax动态查询数据库的小Demo,又重新学习了一下ajax的一些知识.在此和大家分享一下...... 啥都别说了,先上代码 Controller层 查询总用户数 @RequestMapp ...
- 微信小程序php连接MySQL数据库查询数据
刚开始学习小程序,做毕业设计,不过一直都被一个问题困扰,就是连接数据库实现数据的同步. 通过其他几篇文章总结出来的成果,记录分享一下,欢迎批评指正! 1.定义好数据库连接 文件名connect.php ...
- JPA连接Mysql数据库时提示:Table 'jpa.sequence' dosen't exisit
场景 在使用JPA连接Mysql数据库进行数据持久化时提示: Table 'jpa.sequence' dosen't exist 注: 博客主页: https://blog.csdn.net/bad ...
最新文章
- 【学界】深度学习如何影响运筹学?
- CSS Guide Lines
- NFS 网络文件系统
- 有关调试CRM系统的一些感想
- miniob :相关环境配置
- 解决: This application has no explicit mapping for /error, so you are seeing this as a fallback.
- SQL Server2008数据库管理 (第二部分)
- php mysql_affected_rows获取sql执行影响的行数
- C#将数据库图片显示在pictureBox
- ThinkPHP验证码和分页
- 【图像分割】基于matlab各向异性热扩散方程SAR图像分割【含Matlab源码 1879期】
- matlab制作水印,怎么在含有水印的图像中提取出水印
- 巴菲特致股东的一封信:1996年
- javascript-异步之Promise then和catch
- 白酒分化明显,中小酒企面临生存困境
- [经验教程]拼多多直接免拼是什么意思?
- aar打包依赖 android_打包依赖.aar文件以及坑总结
- 为什么要在csdn开一个博客
- win7 不显示图片缩略图(解决方法)
- 防火墙技术在计算机网络安全中的应用分析,计算机网络安全中防火墙技术的应用分析...
热门文章
- 腾讯云使用phpStudy部署网站(附腾讯云优惠券)
- 【RabbitMQ】RabbitMQ基础
- win32俄罗斯方块c++语言 vs2012源代码,C++实现俄罗斯方块
- 广州尚顶网络科技有限公司二维码防伪防窜系统
- 微软研究院洪小文:人工智能到底是个什么东西?我们应该怎样看待它?
- “云+AI”沉锚,百度智能云锁定百度AI产业智能化航道
- [附源码]计算机毕业设计Springboot大学生志愿者服务管理系统
- CANN训练营第三季_昇腾CANN算子精讲课_TBE算子Sinh开发笔记_UT测试(三)
- 虚荣 VG API 分析
- 关于车--标致206相关问题解析及选车建议(zt)