大数据处理中,一般会要用到 spark 来进行大量离线计算后,对 mysql 进行读写操作,读操作可能在计算之前;这里列出 python 的 spark client 模块 pyspark 来对 mysql 进行连接操作。
推荐方式
from pyspark.sql import SparkSession
from pyspark.sql import SQLContext
SparkSession.builder.config('spark.driver.extraClassPath',
'/xxx/xxx/.m2/repository/mysql/mysql-connector-java/5.1.49/mysql-connector-java-5.1.49.jar')
spark = SparkSession.builder.appName('demo').getOrCreate()
sqlContext = SQLContext(spark.sparkContext)
df = sqlContext.read.format("jdbc").options(
url="jdbc:mysql://localhost:3306/my_db",
driver="com.mysql.jdbc.Driver",
dbtable="my_table",
user="root",
password="").load()
df.show()
这里举例了,本地运行的示例,如果在线上环境完备的分布式中运行,可以去掉 spark.driver.extraClassPath
配置。