Spyder Startup 命令创建 SparkSession 对象和 *两个* Web UI

问题描述 投票:0回答:1

在我的 Spyder 首选项中,我有以下 IPython 控制台启动命令:

  from pyspark.sql import SparkSession ; spark = SparkSession.builder.appName("SparkExamples.com").getOrCreate()

这将在端口 4040 和 4041 上启动两个 Web UI。

当我注释掉 Startup 并从 Spyder 中的 IPython 提示符发出相同的命令时,我在端口 4040 上仅得到 one Web UI。

当Startup命令不注释掉时,我发现如下 需要采取一些步骤来终止生成的两个 Web UI:

  • 发出spark.stop()只会杀死第二个
  • 发出 sys.exit() (不重新启动内核)使第一个仍在运行
  • 发出 exit() 会重新启动内核并杀死第一个内核

为什么启动命令会创建两个 Web UI?我只有一个 Spyder 控制台, 因此,大概是一个内核。

我在 Windows 10 上使用 Anaconda 安装了 Python、Spyder、Java 和 PySpark。

根据我的问题的独特性,其他人可能很难评论原因和补救措施。然而,“明显”的原因似乎并不是那么不正统,至少在我的新手看来,即上面的启动命令。因此,其他人可以证实其 Spyder/Spark 设置中的问题或不存在该问题,这将很有帮助。也就是说,设置启动命令时有两个 Web UI,但如果在 Spyder 控制台上发出相同的命令,则只有一个 Web UI。谢谢。 附:为什么这么频繁地重启IPython控制台?

我收到了我发布的心跳超时警告 之前

。它有 由于缺少答案和单个内容而被自动删除 不加解释地投反对票,我不会费心去挖掘 细节。然而,这些超时的一个副作用是,许多 调用其他命名空间中的对象会产生错误

ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it

# works
spark.read?

# Don't work
spark.read.csv?
df.show()
df = spark.read.csv(
   r"C:\cygwin64\home\User.Name\tmp\zipcodes.csv",
   header=True )
spark.stop()

使用
exit()
重新启动内核并重新创建所有内容后 对象,上述命令再次起作用。


通过反复试验,我发现重新启动的内核不会发出
python apache-spark pyspark spyder
1个回答
0
投票
在旧 Web UI 的基础上

启动新的 Web UI。发行

spark.stop()
只杀死旧的,如输入其 URL 所示 localhost:404x(可能是 4040、4041、4041 等)。很容易保存 通过记录 Web UI 上的正常运行时间来跟踪旧与新。
在 Spyder 的首选项中,如果“IPython 控制台”
Startup
字段确实

包含以下内容,则

exit()
将导致剩余 Web UI 也停止响应: from pyspark.sql import SparkSession ; spark = SparkSession.builder.appName("SparkExamples.com").getOrCreate()
但是,如果设置了上述

Startup
命令

,则

exit()
启动 新的 Web UI 旧的 Web UI 也继续响应,如 访问其 URL
localhost:404x
并记下正常运行时间。我不 知道为什么旧的 Web UI 继续运行。 我确实有上面的
Startup
命令集,因为它太 每次我重新启动 IPython 控制台时都会发出不方便的问题

exit()

。 因此,我最终得到了新旧 Web UI。我只需要 记得发出

spark.stop()
以在发出后终止旧的 Web UI
exit()
    

© www.soinside.com 2019 - 2024. All rights reserved.