You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows环境下Spark调用saveAsTextFile报错问题求助

解决Windows下Spark saveAsTextFile报错ExitCodeException -1073741701的问题

这个错误我之前在Windows上用Spark的时候也碰到过,根源就是Spark依赖的Hadoop本地工具(winutils.exe)缺失——因为Windows系统没有自带Hadoop需要的底层文件操作组件,导致写入本地文件时触发异常。下面是一步步的解决方法:

步骤1:确认Spark对应的Hadoop版本

先搞清楚你的Spark是基于哪个Hadoop版本编译的:打开PySpark Shell时,开头的日志里会显示类似Using Hadoop jar files: hadoop-2.7.3.jar这样的信息,记下来这个版本号。

步骤2:下载匹配的winutils工具包

找和你Hadoop版本对应的winutils压缩包(选64位的,现在基本都是64位系统),解压到一个固定路径比如C:\hadoop,解压后你会在C:\hadoop\bin里看到winutils.exehadoop.dll这些核心文件。

步骤3:配置系统环境变量

  • 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
  • 在系统变量里新建HADOOP_HOME,值设为你刚才解压的路径(比如C:\hadoop
  • 编辑系统变量里的Path,添加%HADOOP_HOME%\bin

步骤4:重启PySpark并修正细节

  • 关闭当前的PySpark Shell,重新打开(环境变量需要重启程序才会生效)
  • 还有个小细节要注意:你的输出路径拼写错了——C:/Java/ouput应该是C:/Java/output;另外要确保这个路径不存在,Spark不会自动覆盖已存在的目录,所以提前删掉这个文件夹再执行代码:
    nums = sc.parallelize([1,2,3])
    nums.saveAsTextFile("file:///C:/Java/output")
    

这样应该就能正常完成文件写入了。

内容的提问来源于stack exchange,提问作者learning_dev

火山引擎 最新活动