(null)在Pyspark上的saveAsTextFile()中的命令字符串异常中的条目

Jr *_*wec 13 apache-spark pyspark jupyter-notebook

我在Windows 7中使用Jupyter笔记本(Python 2.7)在PySpark中工作.我有一个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
Run Code Online (Sandbox Code Playgroud)

在我看来,RDD对象不应该有任何问题,因为我能够无错误地执行其他操作,例如执行idSums.collect()产生正确的输出.

此外,Output创建目录(包含所有子目录)并part-00001创建文件,但它是0字节.

小智 29

你错过 winutils.exe 了一个hadoop二进制文件.根据x64位/ x32位系统下载winutils.exe文件并设置指向它的hadoop home.

第一种方式:

1.下载文件

2.在你的系统中创建hadoop文件夹ex"C:"

3.在hadoop目录中创建bin文件夹ex:C:\ hadoop\bin

4.paste winutils.exe in bin ex:C:\ hadoop\bin\winuitls.exe

5.在系统属性中的用户变量 - >高级系统设置

创建新变量名称:HADOOP_HOME路径:C:\ hadoop \

第二种方式:

您可以使用以下命令直接在您的Java程序中设置hadoop home:

System.setProperty("hadoop.home.dir","C:\ hadoop");