2016-11-23 59 views
3

我在Windows 7中的Jupyter筆記本(Python 2.7)上的PySpark中工作。我有一個名爲idSumspyspark.rdd.PipelinedRDD類型的RDD。當試圖執行idSums.saveAsTextFile("Output"),我收到以下錯誤:(null)PASpark上的saveAsTextFile()中的命令字符串異常入口

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字節。

回答

9

您缺少winutils.exe hadoop二進制文件。根據x64位/ x32位系統下載winutils.exe文件&設置您的hadoop指向它。

1路:

1.Download文件

在系統中的前 「C:」

2.創建的Hadoop文件夾中的hadoop目錄前

3.創建bin文件夾:C:\ Hadoop的\ BIN

在倉前

4.paste winutils.exe:C:\ Hadoop的\ BIN \ winuitls.exe在系統屬性

5.In用戶變量 - >高級系統設置

創建新變量 名稱: HADOOP_HOME 路徑: C:\ Hadoop的\

第二路:

您可以在Java程序中直接設置的Hadoop家裏用下面的命令是這樣的:

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

+0

此解決方案有效。謝謝!請注意,雖然spark可以在沒有hadoop的情況下運行(正如您所知道的@HapreetVarma),但它可以在減少功能的情況下運行。 –