Pysp上saveAsTextFile()中命令字符串异常中的(空)项

2024-04-29 07:34:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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字节。


Tags: inoutputfailurewindows错误笔记本jupyterstage
3条回答

您缺少一个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。

完整的错误日志在这里

2018-05-05 18:27:47 ERROR Shell:397 - Failed to locate the winutils binary in the hadoop binary path
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
    at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:379)
    at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:394)
    at org.apache.hadoop.util.Shell.<clinit>(Shell.java:387)
    at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:80)
    at org.apache.hadoop.security.SecurityUtil.getAuthenticationMethod(SecurityUtil.java:611)
    at org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:273)
    at org.apache.hadoop.security.UserGroupInformation.ensureInitialized(UserGroupInformation.java:261)
    at org.apache.hadoop.security.UserGroupInformation.loginUserFromSubject(UserGroupInformation.java:791)
    at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:761)
    at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:634)
    at org.apache.spark.util.Utils$$anonfun$getCurrentUserName$1.apply(Utils.scala:2464)
    at org.apache.spark.util.Utils$$anonfun$getCurrentUserName$1.apply(Utils.scala:2464)
    at scala.Option.getOrElse(Option.scala:121)
    at org.apache.spark.util.Utils$.getCurrentUserName(Utils.scala:2464)
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:292)
    at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2486)
    at org.apache.spark.sql.SparkSession$Builder$$anonfun$7.apply(SparkSession.scala:930)
    at org.apache.spark.sql.SparkSession$Builder$$anonfun$7.apply(SparkSession.scala:921)
    at scala.Option.getOrElse(Option.scala:121)
    at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:921)
    at com.dataflair.spark.Wordcount$.main(Wordcount.scala:13)
    at com.dataflair.spark.Wordcount.main(Wordcount.scala)

我有一个类似的异常,在加载在其他机器中构建的模型并在Windows系统中复制时出现了权限问题,尽管HADOOP_HOME已经设置好。 我刚刚在我的模型文件夹上运行了以下命令-

winutils.exe chmod-R 777模型路径。

相关问题 更多 >