我在PySpark工作,在windows 7中开发Jupyter笔记本(Python 2.7)。我有一个pyspark.rdd.PipelinedRDD
类型的RDD,叫做idSums
。尝试执行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字节。
您缺少一个hadoop二进制文件^{} 。根据x64位/x32位系统,下载^{} 文件,并将hadoop home设置为指向该文件。
第一条路:
1.下载文件
2.在系统ex“C:”中创建hadoop文件夹
3.在hadoop目录中创建bin文件夹,例如:C:\ hadoop\bin
4.将winutils.exe粘贴到bin ex中:C:\ hadoop\bin\winuitls.exe
5.系统属性中的用户变量->;高级系统设置
创建新变量 姓名: HADOOP_主页 路径: C: \hadoop\
第二条路:
可以使用以下命令直接在Java程序中设置hadoop home:
System.setProperty(“hadoop.home.dir”,“C:\ hadoop”)
与上面@Hapreet Varma描述的程序相同
您缺少winutils.exe hadoop二进制文件。根据x64位/x32位系统,下载winutils.exe文件并将hadoop home设置为指向该文件。
第一条路:
1.下载文件
2.在系统ex“C:”中创建hadoop文件夹
3.在hadoop目录中创建bin文件夹,例如:C:\ hadoop\bin
4.将winutils.exe粘贴到bin ex中:C:\ hadoop\bin\winuitls.exe
5.系统属性中的用户变量->;高级系统设置
创建新变量名:HADOOP\u HOME Path:C:\ HADOOP\
第二条路:
可以使用以下命令直接在Java程序中设置hadoop home:
System.setProperty(“hadoop.home.dir”,“C:\ hadoop”)
如果在Eclipse Oxygen中工作,则必须在系统属性中设置变量后重新启动Eclipse,否则它将不起作用。 如果路径设置错误,Eclipse将在日志的开头显示winutils的当前设置位置。像这样的东西
2018-05-05 18:27:47错误外壳:397-无法在hadoop二进制路径中找到winutils二进制文件
java.io.IOException:在Hadoop二进制文件中找不到可执行文件null\bin\winutils.exe。
完整的错误日志在这里
我有一个类似的异常,在加载在其他机器中构建的模型并在Windows系统中复制时出现了权限问题,尽管HADOOP_HOME已经设置好。 我刚刚在我的模型文件夹上运行了以下命令-
winutils.exe chmod-R 777模型路径。
相关问题 更多 >
编程相关推荐