调用 sc.parallelize() 时出现 WindowsError

Posted

技术标签:

【中文标题】调用 sc.parallelize() 时出现 WindowsError【英文标题】:WindowsError when calling sc.parallelize() 【发布时间】:2017-12-07 06:40:31 【问题描述】:

我想使用sc.parallelize() 函数,但是每当我尝试调用它时,都会收到以下错误:

File "V:/PyCharmProjects/sample.py", line 9, in <module>

input_data = sc.parallelize(sc.textFile("C:\Users\Spider\Desktop\GM_coding\Sample Data.csv"))

 File "V:\spark-2.2.0-bin-hadoop2.7\python\pyspark\context.py", line 497, in parallelize os.unlink(tempFile.name)

WindowsError: [Error 32] The process cannot access the file because it is being used by another process: u'C:\\Users\\Spider\\AppData\\Local\\Temp\\spark-fef6debd-ff91-4fb6-85dc-8c3a1da9690a\\pyspark-6ed523e7-358f-4e3c-ad83-a479fb8ecc52\\tmpxffhfi'

【问题讨论】:

我的标志配额用完了...你能描述更多吗?显然,另一个进程仍在访问资源。你必须杀死正在使用的文件,在这里:superuser.com/questions/2937/… 感谢您的评论!我要做的就是使用 parallelize() 函数。即使在新启动时,我也会收到此错误。我试图寻找一个相关的进程,但找不到任何进程。 答案有帮助吗? 【参考方案1】:

不确定它是否与您的错误相关(并且无法在 Windows 中对其进行测试),但您正在尝试 parallelize 已经是 RDD 的东西(即“并行化”);来自docs:

textFile名称,minPartitions=None,use_unicode=True

从 HDFS、本地文件系统(在所有节点上可用)或任何 Hadoop 支持的文件系统 URI 读取文本文件,并将其作为 字符串的 RDD。

这里不需要(也不应该使用)sc.parallelize()sc.textFile 的输出已经是一个 RDD。你应该直接去

input_data = sc.textFile("C:\Users\Spider\Desktop\GM_coding\Sample Data.csv")

另请参阅the quick start guide 中的示例。

【讨论】:

以上是关于调用 sc.parallelize() 时出现 WindowsError的主要内容,如果未能解决你的问题,请参考以下文章

Spark读取Hbase中的数据

Spark读取Hbase中的数据

执行 linq 查询时出现超时错误

Spark读取Hbase中的数据

在尝试解析 JSON 数据 W/System.err 时出现此错误:org.json.JSONException:对客户没有价值

Spark之常用操作