spark讀mysql數據


最近在學習中,需要用spark讀取mysql數據,查閱了很多資料大多是java版本的,自己琢磨了半天,研究出python版本的,本人菜鳥,本博客只會記錄學習過程,如有不妥請見諒。所用spark版本為1.4.1.

先上自己找到了一些相關資料,僅供參考~~~

http://www.thebigdata.cn/QiTa/15471.html

http://www.iteblog.com/archives/1560

官方文檔中 http://spark.apache.org/docs/1.4.1/sql-programming-guide.html

有介紹Spark SQL與hive,json等數據的讀寫。而mysql等一些數據庫可通過JDBC來讀取。

from pyspark import SparkContext
from pyspark.sql import SQLContext,Row
sqlContext=SQLContext(sc)
df=sqlContext.read.format('jdbc').options(url="jdbc:mysql://localhost/spider_db?user=spider_user&password=password",dbtable="allpapers").load()

或:

from pyspark import SparkContext
from pyspark.sql import SQLContext,Row
sqlContext=SQLContext(sc)
df=sqlContext.read.jdbc(url="jdbc:mysql://localhost?user=spider_user&password=password",table="spider_db.allpapers")

url含義:

url=jdbc:mysql://MYSQL_HOST/MYSQL_DBNAME?user=MYSQL_USER&password=MYSQL_PASSWD”,dbtable=”MYSQL_TABLE”

MYSQL_HOST為mysql的地址,本機為localhost,MYSQL_DBNAME為數據庫名,MYSQL_USER為用戶名,MYSQL_PASSW為登陸密碼,MYSQL_TABLE為表名。MYSQL_DBNAME可放入url中,也可放入table中。

所遇到的錯誤情況有一下兩種:

1.java.sql.SQLException: No suitable driver found for ...

 

解決辦法:下載mysql-connector包,將其放到spark下,並指定jar包,即在spark-env.sh中添加

export SPARK_CLASSPATH=$SPARK_CLASSPATH:/usr/hadoop/spark/lib/mysql-connector-java-5.1.36-bin.jar

2.java.sql.SQLException: access denied for user'spider_user '@'**.**.**.**'(using password :Yes)

解決辦法:mysql的密碼輸入錯誤,正確書寫mysql密碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM