我在 Windows 10 x64 上使用 Anaconda。我正在使用 VS 代码。最近我成功运行了以下内容:
(一)
import pyspark
from pyspark.sql import SparkSession
spark=SparkSession.builder.master("local[1]").appName("local").getOrCreate()
rdd=spark.sparkContext.parallelize([1,2,3,4,56])
print(rdd.count())
然后我点击文件->打开文件夹并打开一个文件夹,所以现在它出现在我屏幕左侧的窗格中。 问题 1:这有什么作用?以前以为只是快速查看一些常用文件的方法。
现在我的文件夹在我的左侧窗格中,上面的代码出错(见下文),错误包含短语 Python worker failed to connect back.
。 问题 2:为什么会发生这种情况?
问题 3:如果我想在 VS Code 中打开文件夹的同时避免上述错误,我该怎么办?关于我应该查看哪些设置的任何想法?
如果我关闭文件夹,我的代码会再次运行。
----------------------------------------------- -------------------------------------------------- ----------------------------------------
错误:每次它给我一个稍微不同的错误,但它总是以这样的方式开始:
Py4JJavaError Traceback (most recent call last)
\\pathtomyfile\temp.py in
----> 240 spark.createDataFrame(pandas_df).toDF(*columns).show()
C:\Spark\spark-3.1.1-bin-hadoop2.7\python\pyspark\sql\dataframe.py in show(self, n, truncate, vertical)
482 """
483 if isinstance(truncate, bool) and truncate:
--> 484 print(self._jdf.showString(n, 20, vertical))
485 else:
486 print(self._jdf.showString(n, int(truncate), vertical))
C:\Spark\spark-3.1.1-bin-hadoop2.7\python\lib\py4j-0.10.9-src.zip\py4j\java_gateway.py in __call__(self, *args)
1302
1303 answer = self.gateway_client.send_command(command)
-> 1304 return_value = get_return_value(
1305 answer, self.gateway_client, self.target_id, self.name)
1306
C:\Spark\spark-3.1.1-bin-hadoop2.7\python\pyspark\sql\utils.py in deco(*a, **kw)
109 def deco(*a, **kw):
110 try:
--> 111 return f(*a, **kw)
112 except py4j.protocol.Py4JJavaError as e:
113 converted = convert_exception(e.java_exception)
C:\Spark\spark-3.1.1-bin-hadoop2.7\python\lib\py4j-0.10.9-src.zip\py4j\protocol.py in get_return_value(answer, gateway_client, target_id, name)
324 value = OUTPUT_CONVERTER[type](answer[2:], gateway_client)
325 if answer[1] == REFERENCE_TYPE:
--> 326 raise Py4JJavaError(
327 "An error occurred while calling {0}{1}{2}.\n".
328 format(target_id, ".", name), value)
Py4JJavaError: An error occurred while calling o77.showString.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 3.0 failed 1 times, most recent failure: Lost task 0.0 in stage 3.0 (TID 3) (blablabla executor driver): org.apache.spark.SparkException: Python worker failed to connect back.
<a bunch more stuff after that>
(总是“阶段 x 中的任务 0 失败了 y 次”,但 x 并不总是 3,y 也不总是 1。)
----------------------------------------------- -------------------------------------------------- ----------------------------------------
其他结果:如果我运行以下命令,我会遇到类似的错误:
(二)
import pandas as pd
import numpy as np
from pyspark.sql import SparkSession
spark=SparkSession.builder.master("local[1]").appName("local").getOrCreate()
pandas_df = pd.DataFrame(np.random.randint(0,100, size=(5,5)))
columns = ["col"+str(i) for i in range(5)]
print(columns)
display(pandas_df.head())
spark.createDataFrame(pandas_df).toDF(*columns).show()
如果我运行以下命令,我不会收到错误:
(三)
from pyspark.sql import SparkSession
spark=SparkSession.builder.master("local[1]").appName("local").getOrCreate()
rocks = spark.read.format("csv").option("header", "true").load("C:\\rocksamples.csv")
rocks.show(10)
此外,如果我从打开的文件夹内的 .ipynb 文件运行上述三个代码块(I、II、III),都不会出错。
----------------------------------------------- -------------------------------------------------- ----------------------------------------
背景:我的机器上有以下文件和文件夹:
我当前的环境变量(我想清理但现在我害怕清理)包括以下内容:
我认为 Python 正在寻找正确的 PySpark,因为如果我尝试 from pyspark import this_does_not_exist
,我会得到 ImportError: cannot import name 'this_does_not_exist' from 'pyspark' (C:\Spark\spark-3.1.1-bin-hadoop2.7\python\pyspark\__init__.py)
。
我在 VS Code 中使用“打开文件夹”打开的文件夹位于包含空格的 UNC 路径上(即 \\blablabla\bla\my 文件夹)。