zeppelin pyspark 如何连接远程 spark?

zeppelin pyspark how to connect remote spark?

我的飞艇现在正在使用本地火花。

当我尝试创建远程 SparkContext 时得到 ValueError: Cannot run multiple SparkContexts at once

关注 multiple SparkContexts error in tutorial

写下代码:

from pyspark import SparkConf, SparkContext

sc.stop()
conf = SparkConf().setAppName('train_etl').setMaster('spark://xxxx:7077')
sc = SparkContext(conf=conf)

出现另一个错误:

Traceback (most recent call last):
  File "/tmp/zeppelin_pyspark-6681108227268089746.py", line 363, in <module>
    sc.setJobGroup(jobGroup, jobDesc)
  File "/usr/local/spark/python/lib/pyspark.zip/pyspark/context.py", line 944, in setJobGroup
    self._jsc.setJobGroup(groupId, description, interruptOnCancel)
AttributeError: 'NoneType' object has no attribute 'setJobGroup'

我该怎么办?

默认情况下,Spark 会自动创建名为 sc 的 SparkContext 对象,当 PySpark 应用程序 started.you 必须在您的代码中使用以下行时

sc = SparkContext.getOrCreate()

获取单例 SQLContext(如果存在)或使用给定的 SparkContext 创建一个新的 SQLContext。 此函数可用于创建可跨 JVM 共享的单例 SQLContext 对象。

如果当前线程有活动的 SQLContext,将返回它而不是全局的。

  1. 输入http://zeppelin_host:zeppelin_port/#/interpreter
  2. spark 解释器(用于 pyspark)的参数 master 配置为 spark://xxxx:7077