Пример подключения PySpark к MySQL

Spark

Эта статья была опубликована вНаггетс, Автор: Ян Бэй (wx: shin-devops), незаконного присвоения нет

Процесс настройки

  1. Установитьpyspark
  2. настроитьmysql-connector.jar
  3. Создать соединение
  4. читать данные

Установите PySpark

Создайте новый проект локально, выполнитеpip install pyspark==3.0, установите PySpark.

Конфигурация MySQL-коннектора

скачать

Войтиhttps://dev.mysql.com/downloads/connector/j/скачать соответствующую версиюPlatform Independentпочтовый пакет:

Connector/J version JDBC version MySQL Server version JRE Required JDK Required for Compilation Status
5.1 3.0, 4.0, 4.1, 4.2 5.61, 5.71, 8.01 JRE 5 or higher1 JDK 5.0 AND JDK 8.0 or higher2, 3 General availability
8.0 4.2 5.6, 5.7, 8.0 JRE 8 or higher JDK 8.0 or higher2 General availability. рекомендовать

Нажмите, чтобы просмотреть полностьюСвязь версий

кmysql-connector-java-8.0.20.tar.gzНапример, после завершения загрузки распаковать и получитьmysql-connector-java-8.0.19.jar

Перейти к пути SPARK_HOME

Если он установлен другими способами, вы можете выполнить его локальноecho $SPARK_HOMEВы можете просмотреть путь установки Spark.

непосредственно черезpip install pyspark==3.0Установите PySpark таким образом,$SPARK_HOMEПеременная среды пуста.В настоящее время шаги «копирования mysql-connector.jar в папку $SPARK_HOME/jars», упомянутые в других документах по настройке в Интернете, не могут быть выполнены, и код сообщит:

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

Эта статья была опубликована вНаггетс, Автор: Ян Бэй (wx: shin-devops), незаконного присвоения нет

Решение состоит в том, чтобы передать код PySpark_find_spark_homeспособ найти$SPARK_HOME:

>>> from pyspark import find_spark_home
>>> print(find_spark_home._find_spark_home())

/home/ityoung/test-spark/venv/lib/python3.6/site-packages/pyspark

потом$SPARK_HOMEустановить этот путь, скопироватьmysql-connector.jarприбыть$SPARK_HOME/jarsв:

export SPARK_HOME=/home/ityoung/test-spark/venv/lib/python3.6/site-packages/pyspark
mv mysql-connector-java-8.0.19.jar $SPARK_HOME/jars

Пример искрового кода

Ссылаться на:zhuanlan.zhihu.com/p/136777424Перепечатайте и укажите источник

main.py

# 本文发布于[掘金](https://juejin.cn/user/3579665589502909),作者:严北(wx: shin-devops),禁止盗用
from pyspark import SparkContext
from pyspark.sql import SQLContext, Row
​
if __name__ == '__main__':
    # spark 初始化
    sc = SparkContext(master='local', appName='sql')
    spark = SQLContext(sc)
    # mysql 配置(需要修改)
    prop = {'user': 'xxx',
            'password': 'xxx',
            'driver': 'com.mysql.cj.jdbc.Driver'}
    # database 地址(需要修改)
    url = 'jdbc:mysql://host:port/database'
    
    # 读取表
    data = spark.read.jdbc(url=url, table='tb_test', properties=prop)
    # 打印data数据类型
    print(type(data))
    # 展示数据
    data.show()
    # 关闭spark会话
    spark.stop()

Измените конфигурацию в коде и запустите, чтобы увидеть вывод данных:

python main.py

Эта статья была опубликована вНаггетс, Автор: Ян Бэй (wx: shin-devops), незаконного присвоения нет