spark讀mysql數據

最近在學習中,須要用spark讀取mysql數據,查閱了不少資料大可能是java版本的,本身琢磨了半天,研究出python版本的,本人菜鳥,本博客只會記錄學習過程,若有不妥請見諒。所用spark版本爲1.4.1.
html

先上本身找到了一些相關資料,僅供參考~~~java

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

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

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

有介紹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()

或:apache

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含義:json

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

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

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

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密碼。

相關文章
相關標籤/搜索