当前位置: 首页>Python>正文

centos7安裝MySQL,centos7下載spark連接mysql數據庫提取數據(pyspark,Scala,python獨立執行)

centos7安裝MySQL,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

centos7安裝MySQL、在這里插入圖片描述
這時,你在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數據庫

spark連接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

https://www.nshth.com/python/338777.html
>

相关文章:

  • centos7安裝MySQL
  • spark連接mysql數據庫
  • docker部署python項目
  • 利用spark進行數據分析
  • spark sql和hive區別
  • centos數據庫
  • sparksql和jdbc
  • spark mysql
  • 國二python難嗎,python字符串(二)
  • 電腦軟件下載app,在電腦上體驗了 16 款手機 App 后,我很失望
  • elasticsearch中文文檔,Elastic安全分析新利器 —— Event Query Language (EQL) 介紹
  • 數據結構與算法python,[FreeCodeCamp筆記] Python 數據結構和算法1 二分搜索 Binary Search
  • 黑蘋果macOS系統鏡像工具,MacOS Monterey 12.2.1 (21D62) OC 0.7.8 / Cl 5144 / PE 三分區原版黑蘋果鏡像
  • 51單片機畢業設計論文,【畢業設計】基于單片機無線充電的4軸飛行器 -物聯網 嵌入式 stm32
  • 數據庫基礎知識整理,數據庫筆記整理
  • python運行不報錯又無任何結果輸出,linux 正確錯誤輸出_報告錯誤的正確方法
  • 計算機組成原理第六版課后答案,杭電計算機組成原理實驗九R-I,杭電計組實驗9-實現R-I型指令的CPU設計實驗.doc
  • python面向對象,Python零基礎速成班-第10講-Python面向對象編程(下),Property屬性、特殊方法、設計模式、鏈表應用
  • 數據庫視圖是什么,【SpringMVC】SpringMVC模型數據+視圖解析器
  • mp3格式轉換器,FFmpeg支持的音頻和視頻編解碼格式
  • 音樂學校招生要求,學校的音樂樓
  • c語言輸入兩個數輸出較大數,C語言求兩個數的較大值
  • 定義一個函數求三個數的最大值,輸入兩個整數,要求輸出其中值較大者。要求用函數求出最大值
  • MySQL學習 DAY1
  • 一個眼神一個微笑就讓人滿足,看得到的微笑
  • centos7安裝MySQL,centos7下載spark連接mysql數據庫提取數據(pyspark,Scala,python獨立執行)
  • node.js開發,從零開始nodejs系列文章-nodejs到底能干什么
  • python控制軟件自動化,Python實現網站自動登錄---傻瓜教程
  • get all of,resent = msg.get_all('Resent-Date') AttributeError: 'str' object h
  • opencv人體動作識別,torchvision使用keypoint rcnn 進行人體關鍵點定位
  • 深度卷積神經網絡原理與實踐,卷積神經網絡resent網絡實踐
  • 服務器,win服務器系統路由器,Windows server 2012 之路由功能
  • 小青蛙走迷宮的問題
  • 漢諾塔-小青蛙
  • 小青蛙oracle跟蹤,在小青蛙TOAD中用oracle語句寫
  • 音頻頻譜分析儀安卓版,[Android]自定義繪制一個簡易的音頻條形圖,附上對MP3音頻波形數據的采集與展現
  • 連乘符號∏的運算法則,∏這個是什么符號?
  • 用例失敗jenkins卻構建成功,jenkins 構建異常_jenkins構建失敗的原因是什么?