Эта статья была опубликована вНаггетс, Автор: Ян Бэй (wx: shin-devops), незаконного присвоения нет
Процесс настройки
- Установить
pyspark
- настроить
mysql-connector.jar
- Создать соединение
- читать данные
Установите 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), незаконного присвоения нет