首页 > 解决方案 > 如何使用 OSError:[WinError 123] 修复 pyspark NLTK 错误?

问题描述

运行将 RDD 转换为 DataFrame 时出现意外错误:

import nltk
from nltk import pos_tag
my_rdd_of_lists = df_removed.select("removed").rdd.map(lambda x: nltk.pos_tag(x))
my_df = spark.createDataFrame(my_rdd_of_lists)

当我调用 nltk 函数 od rdd 时,总是出现此错误。当我用任何 numpy 方法制作这条线时,它并没有失败。

错误代码:

Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.runJob.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 14.0 failed 1 times, most recent failure: Lost task 0.0 in stage 14.0 (TID 323, localhost, executor driver): org.apache.spark.api.python.PythonException: Traceback (most recent call last):

OSError: [WinError 123] Nazwa pliku, nazwa katalogu lub składnia etykiety woluminu jest niepoprawna: 'C:\\C:\\Users\\Olga\\Desktop\\Spark\\spark-2.4.5-bin-hadoop2.7\\jars\\spark-core_2.11-2.4.5.jar'

所以这是我不知道如何解决的部分。我认为这是环境变量的问题,但似乎一切正常:

SPARK HOME: C:\Users\Olga\Desktop\Spark\spark-2.4.5-bin-hadoop2.7

我还打印了我的 sys.path:

import sys
for i in sys.path:
    print(i) 

并得到:

C:\Users\Olga\Desktop\Spark\spark-2.4.5-bin-hadoop2.7\python
C:\Users\Olga\AppData\Local\Temp\spark-22c0eb38-fcc0-4f1f-b8dd-af83e15d342c\userFiles-3195dcc7-0fc6-469f-9afc-7752510f2471
C:\Users\Olga\Desktop\Spark\spark-2.4.5-bin-hadoop2.7\python\lib\py4j-0.10.7-src.zip
C:\Users\Olga
C:\Users\Olga\Anaconda3\python37.zip
C:\Users\Olga\Anaconda3\DLLs
C:\Users\Olga\Anaconda3\lib
C:\Users\Olga\Anaconda3

C:\Users\Olga\Anaconda3\lib\site-packages
C:\Users\Olga\Anaconda3\lib\site-packages\win32
C:\Users\Olga\Anaconda3\lib\site-packages\win32\lib
C:\Users\Olga\Anaconda3\lib\site-packages\Pythonwin
C:\Users\Olga\Anaconda3\lib\site-packages\IPython\extensions
C:\Users\Olga\.ipython

这里对我来说一切看起来都还不错。请帮忙,我不知道该怎么办。代码的早期部分运行没有任何错误。我应该以任何其他方式安装 nltk 以使用 spark 运行它吗?

标签: pythonpysparkconda

解决方案


Hai Milva 要解决代码中的 os 错误,您只需导入 os,以便将运行程序的所有权限授予如下代码:

{{{ 导入操作系统 }}}

希望这个答案对你有帮助


推荐阅读