Luc*_* Hu 6 apache-spark kubernetes pyspark jupyter
我最近看到一个pull请求被合并到Apache/Spark存储库,显然在K8s上添加了PySpark的初始Python绑定.我在PR上发布了一条评论,询问如何在Python Jupyter笔记本中使用spark-on-k8s,并被告知在这里问我的问题.
我的问题是:
有没有办法使用PySpark的SparkSession.Buildermaster设置为创建SparkContexts k8s://<...>:<...>,并让生成的作业运行spark-on-k8s,而不是local?
例如:
from pyspark.sql import SparkSession
spark = SparkSession.builder.master('k8s://https://kubernetes:443').getOrCreate()
Run Code Online (Sandbox Code Playgroud)
我有一个在Kubernetes pod中运行的交互式Jupyter笔记本,我正在尝试使用PySpark创建一个SparkContext在spark-on-k8上运行而不是使用local[*]as master.
直到现在,我一直在收到错误说:
错误:Kubernetes目前不支持Python应用程序.
每当我设置master为k8s://<...>.
似乎PySpark总是在client模式下运行,目前似乎不支持spark-on-k8s- 也许有一些我不知道的解决方法.
提前致谢!
小智 5
pyspark客户端模式适用于Spark最新版本2.4.0
我就是这样做的(在 Jupyter 实验室):
import os
os.environ['PYSPARK_PYTHON']="/usr/bin/python3.6"
os.environ['PYSPARK_DRIVER_PYTHON']="/usr/bin/python3.6"
from pyspark import SparkContext, SparkConf
from pyspark.sql import SparkSession
sparkConf = SparkConf()
sparkConf.setMaster("k8s://https://localhost:6443")
sparkConf.setAppName("KUBERNETES-IS-AWESOME")
sparkConf.set("spark.kubernetes.container.image", "robot108/spark-py:latest")
sparkConf.set("spark.kubernetes.namespace", "playground")
spark = SparkSession.builder.config(conf=sparkConf).getOrCreate()
sc = spark.sparkContext
Run Code Online (Sandbox Code Playgroud)
注意:我在 Mac 上使用 Docker Desktop 本地运行 kubernetes。
| 归档时间: |
|
| 查看次数: |
995 次 |
| 最近记录: |