vs代码:“打开文件夹”使我的pyspark无法工作?

uujelgoq  于 2021-07-14  发布在  Spark
关注(0)|答案(3)|浏览(452)

我在Windows10x64上使用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代码中打开一个文件夹的同时避免上述错误,我应该怎么做?你知道我应该看什么样的环境吗?
如果我关闭文件夹,我的代码会再次工作。

68de4m5k

68de4m5k1#


错误:每次它都会给我一个稍微不同的错误,但它总是以这样的方式开始:

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。)

ndh0cuux

ndh0cuux2#


其他结果:如果运行以下命令,则会出现类似错误:
(二)

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)都不会出错。

i86rm4rw

i86rm4rw3#


背景:我的计算机上有以下文件和文件夹:
anaconda目录:c:\users\me\anaconda3
spark目录:c:\spark\spark-3.1.1-bin-hadoop2.7
java目录:c:\spark\java\jre1.8.0\u 231
在c:\users\me\anaconda3\lib\site包中没有名为pyspark的东西
c:\rocksamples.csv中的.csv文件
c:\hadoop\bin\winutils.exe中的winutils文件
我当前的环境变量(我想清理,但现在恐怕要清理)包括以下内容:
hadoop\u home=c:\hadoop
java\u home=c:\spark\java\jre1.8.0\u 231
路径=(其他内容);c:\spark\spark-3.1.1-bin-hadoop2.7\bin;c:\spark\java\jre1.8.0\u 231\bin版本
pyspark\驱动程序\u python=jupyter
pyspark\u driver\u python\u opts=笔记本
pyspark\u python=Python
pythonpath=c:\spark\spark-3.1.1-bin-hadoop2.7\python
spark\u home=c:\spark\spark-3.1.1-bin-hadoop2.7
我认为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代码中使用“open folder”打开的文件夹位于包含空格的unc路径上(即\blablabla\bla\my folder)。

相关问题