首页 > 解决方案 > VS Code:“打开文件夹”让我的 PySpark 无法工作?

问题描述

我在 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).

​</p>

我在 VS Code 中使用“打开文件夹”打开的文件夹位于包含空格的 UNC 路径上(即 \\blablabla\bla\my 文件夹)。

标签: pythonapache-sparkvisual-studio-codepysparkanaconda

解决方案


推荐阅读