我正在使用PySpark在Windows 7中运行Jupyter笔记本(Python 2.7)。我有一个名为idSums
的类型为pyspark.rdd.PipelinedRDD
的RDD。当尝试执行idSums.saveAsTextFile("Output")
时,我收到以下错误:
Py4JJavaError: An error occurred while calling o834.saveAsTextFile.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 1 in stage 33.0 failed 1 times, most recent failure: Lost task 1.0 in stage 33.0 (TID 131, localhost): java.io.IOException: (null) entry in command string: null chmod 0644 C:\Users\seride\Desktop\Experiments\PySpark\Output\_temporary\0\_temporary\attempt_201611231307_0033_m_000001_131\part-00001
在我看来,RDD对象不应该有任何问题,因为我能够毫无错误地执行其他操作,例如,执行idSums.collect()
会产生正确的输出。
此外,创建了Output
目录(以及所有子目录),并创建了文件part-00001
,但它是0字节。
5条答案
按热度按时间5q4ezhmt1#
您缺少
winutils.exe
hadoop二进制文件。根据x64位/x32位系统,下载winutils.exe
文件并将hadoop主目录设置为指向它。第一种方法:
1.下载文件
1.在系统中创建
hadoop
文件夹,例如C:
1.在
hadoop
目录中创建bin
文件夹,例如:C:\hadoop\bin
1.将
winutils.exe
粘贴到bin
中,例如:C:\hadoop\bin\winutils.exe
1.在系统属性-〉高级系统设置的用户变量中
创建新变量名称:
HADOOP_HOME
路径:x1米11米1x第二种方法:
您可以使用如下命令直接在Java程序中设置hadoop home:
l7mqbcuq2#
我有一个类似的例外,说权限问题时,加载模型内置在其他一些机器和复制到我的Windows系统,虽然我的
HADOOP_HOME
设置。我刚刚在我的模型文件夹上运行了以下命令:
nwlqm0z13#
与@Hapreet Varma上述程序相同
缺少Hadoop二进制文件winutils.exe。根据x64位/x32位系统,下载winutils.exe文件并将Hadoop主目录设置为指向该文件。
第一种方法:
1.下载文件
2.在您的系统中创建hadoop文件夹ex "C:"
3.在Hadoop目录中创建bin文件夹,例如:C:\Hadoop\bin
4.将winutils.exe粘贴到bin中,例如:C:\hadoop\bin\winuitls.exe
5.在系统属性的用户变量中-〉高级系统设置
创建新变量名称:HADOOP_HOME路径:C:\Hadoop
第二种方法:
您可以使用如下命令直接在Java程序中设置hadoop home:
系统. setProperty("Hadoop. home. dir","C:\Hadoop");
完整的错误日志在这里
dm7nw8vv4#
我发现了一些可以帮助其他人解决这个问题的信息。有时候当你在windows机器上安装spark时,你无法获得hadoop.dll文件。简单地从winutils GitRepo(https://github.com/4ttty/winutils)中获取hadoop.dll文件,并将其放在windows system 32文件夹中。在我完成了这些操作后,我就可以写入磁盘了。
此答案的原始学分-https://programmersought.com/article/53121203250/
mnowg1ta5#
即使在设置bin路径之后,如果它不起作用,那么您需要关闭Eclipse ScalaIDE应用程序,然后再次打开它并尝试运行它。