当前位置: 首页 > article >正文

mac安装Pyspark并连接Mysql

  1. 安装Scala, apache-spark, Hadoop
brew install scala
brew install apache-spark
brew install hadoop
pip install pyspark

注意不要自己另外安装jdk, 会造成版本对不上报错。因为安装apache-spark的过程中会自动安装openjdk。

  1. 配置环境变量
JAVA_HOME=/opt/homebrew/Cellar/openjdk@11/11.0.26/libexec/openjdk.jdk/Contents/Home
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib
export JAVA_HOME

SCALA_HOME=/opt/homebrew/opt/scala
export PATH=$PATH:$SCALA_HOME/bin

export SPARK_PATH=/opt/homebrew/Cellar/apache-spark/3.5.4
export PATH=$PATH:$SPARK_PATH/bin

export openjdk_home=/opt/homebrew/Cellar/openjdk@17/17.0.14


HADOOP_HOME=/opt/homebrew/Cellar/hadoop/3.4.1
export PATH=$PATH:/$HADOOP_HOME/bin

注意jdk版本不对会造成Py4JJavaError: An error occurred while calling None.org.apache.spark.api.java.JavaSparkContext.: java.lang.UnsupportedOperationException: getSubject is supported only if a security manager is allowed

  1. 下载jdbc driver
    链接, 选择 Platform Independent

将下载的解压包中的jar文件拷贝到apache-spark的目录下: /opt/homebrew/Cellar/apache-spark/3.5.4/libexec/jars

  1. 使用如下代码来测试
from pyspark.sql import SparkSession
from pyspark import SparkContext

# sc = SparkContext.getOrCreate()

sparkdriver = SparkSession.builder.\
    appName('demo').\
    master('local[*]').\
    config('spark.driver.extraClassPath', '/opt/homebrew/Cellar/apache-spark/3.5.4/libexec/jars/mysql-connector-j-9.2.0.jar').\
    getOrCreate()
    
df_mysql = sparkdriver.read.format('jdbc').\
    option('url', 'jdbc:mysql://localhost:3306').\
    option('driver', 'com.mysql.jdbc.Driver').\
    option('user', 'root').\
    option('password', '123').\
    option('query', 'select * from tablename').\
    load()

df_mysql.show(10)

Connect MySQL with PySpark using JDBC Connector (Mac 2022)


http://www.kler.cn/a/552247.html

相关文章:

  • 使用 Openpyxl 操作 Excel 文件详解
  • 工厂方法模式 (Factory Method Pattern) 在Spring Boot 中的应用场景
  • Kotlin 扩展
  • 还在为AI模型部署发愁?VSCode插件让你轻松拥有DeepSeek和近百种AI模型!
  • springcloud的组件及作用
  • Linux(Centos 7.6)命令详解:cat
  • 华为固态电池引发的思索
  • 【Arxiv 大模型最新进展】LLaVA Needs More Knowledge: 利用 KG-RAG 提升病理解释性能,并保护隐私(★AI最前线★)
  • electron 本地文件管理系统关于下载的一个关键点
  • Jenkinsdebug:遇到ERROR: unable to select packages:怎么处理
  • 中期检查表
  • C++基础知识学习记录—运算符重载
  • 【Golang 面试题】每日 3 题(五十八)
  • ubuntu平台下vim自动插件管理
  • [AI相关]Unity的C#代码如何简写
  • 构建高效智能对话前端:基于Ant Design X 的deepseek对话应用
  • Kafka的生产者和消费者模型
  • Go 语言函数返回对象 vs 传递指针赋值:性能对比与最佳实践
  • C#上位机--结构
  • Redis(高阶篇)03章——缓存双写一致性之更新策略探讨