spark connect 3.4 开始就支持了connect 模式,3.4.1 比较稳定了

connect server 启动

实际上就是一个spark 引用,通过spark_submit 提交到spark 环境中

  • 启动
./sbin/start-connect-server.sh --packages org.apache.spark:spark-connect_2.12:3.4.1
  • 查看效果

应该会有一个java 进程

apache spark connect 试用_spark

 

  • 页面效果

apache spark connect 试用_apache_02

 

python 应用

需要按足昂pyspark 同时可能需要一些其他的依赖包,比如grpcio,运行环境基于了venv

  • app.py

 


from pyspark.sql import SparkSession
from datetime import datetime, date
from pyspark.sql import Row
spark = SparkSession.builder.remote("sc://localhost:15002").getOrCreate()
df = spark.createDataFrame([
    Row(a=1, b=2., c='string1', d=date(2000, 1, 1), e=datetime(2000, 1, 1, 12, 0)),
    Row(a=2, b=3., c='string2', d=date(2000, 2, 1), e=datetime(2000, 1, 2, 12, 0)),
    Row(a=4, b=5., c='string3', d=date(2000, 3, 1), e=datetime(2000, 1, 3, 12, 0))
])
df.show()
from datetime import datetime, date
  • 效果

apache spark connect 试用_apache_03

 

  • 监控页面

job 任务

apache spark connect 试用_apache_04

 

apache spark connect 试用_python_05

说明

可能运行需要以来一个pip 包,按照提示安装即可,spark connect 还是很强大的,但是目前conect 缺少安全访问,通信协议上使用了grpc,这个具体可以看看官方的一些介绍,基于connect 可以简化spark的访问,对于开发以及调试也比较友好,目前我是基于本地模式
运行的,yarn 模式应该也是没有问题的,但是k8s 模式还需要测试, 后边我整理下测试结果

参考资料

https://www.databricks.com/blog/2022/07/07/introducing-spark-connect-the-power-of-apache-spark-everywhere.html
https://spark.apache.org/docs/latest/api/python/getting_started/quickstart_connect.html
https://stackoverflow.com/questions/36183486/importerror-no-module-named-google