windows - Pyspark 上 saveAsTextFile() 中命令字符串异常中的(空)条目

标签 windows 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

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

此外,Output创建目录(及其所有子目录)和文件 part-00001已创建,但为 0 字节。

最佳答案

您缺少winutils.exe一个 hadoop 二进制文件。根据 x64 位/x32 位系统下载 winutils.exe文件并将您的 hadoop home 设置为指向它。

第一种方法:

  1. 下载文件
  2. 在系统中创建 hadoop 文件夹,例如 C:
  3. hadoop 目录中创建 bin 文件夹,例如:C:\hadoop\bin
  4. winutils.exe粘贴到bin中,例如:C:\hadoop\bin\winutils.exe
  5. 在系统属性中的用户变量中 -> 高级系统设置

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

第二种方式:

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

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

关于windows - Pyspark 上 saveAsTextFile() 中命令字符串异常中的(空)条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54238744/

相关文章:

C++ LoadLibrary ERROR_NOACCESS "Invalid access to memory location."

windows - 尝试通过 GitLab Runner 脚本访问网络驱动器但出现错误

windows - 为什么 "for"在批处理文件中不起作用? (在外面工作正常)

hadoop - Spark Map Task 内存消耗巨大

apache-spark - 仅保留 DataFrame 中有关某些字段的重复项

java - 2K 显示器上的 JFileChooser 图标

scala - Spark Dataset聚合类似于RDD aggregate(zero)(accum, combiner)

apache-spark - 如何让两个 Spark RDD 并行运行

pyspark - 通过 Pyspark 在数据帧上运行 SQL 查询

python - 通过其他键将具有非唯一 ID 的列添加到 pyspark 数据帧