在我的 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:
为什么启动命令会创建两个 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()
重新启动内核并重新创建所有内容后
对象,上述命令再次起作用。通过反复试验,我发现重新启动的内核不会发出
启动新的 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()
。