当前位置: 首页 > 知识库问答 >
问题:

Spark在尝试保存CSV文件时引发错误

乔宏峻
2023-03-14

社区向导,

我真的很沮丧。谈到Spark、Hadoop等人,似乎没有什么是直截了当的。

在过去的几个小时里,我试图找到以下问题的解决方案:

ERROR Executor: Exception in task 0.0 in stage 13.0 (TID 823)
java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.createFileWithMode0(Ljava/lang/String;JJJI)Ljava/io/FileDescriptor;

版本:

  1. 操作系统:Windows 10
  2. 火花版本:2.4.6
  3. Scala版本:2.11.12
  4. Hadoop版本:2.7.1
  5. Java版本:1.80_202(64位)

变量:

  1. SPARK\u主页:C:\SPARK

路径:

  1. %SPARK_HOME%\bin
  2. %HADOOP_HOME%\bin
  3. %SCALA_HOME%\bin
  4. %JRE_HOME%\bin
  5. %JAVA_HOME%\bin

引发错误的命令是:

df.coalesce(1).write.format("csv").save("result")

文件夹(结果)似乎已创建,但为空。

我真的不知道如何解决这个问题。

任何帮助都将受到热烈欢迎。

共有3个答案

谢誉
2023-03-14

您似乎没有在HADOOP_HOME目录中安装适用于Windows的Hadoop二进制文件。或者可能是它们的依赖项(例如Visual C Runtime)丢失了。

您可能还需要直接加载共享库,这取决于启动Spark应用程序的方式。

System.load(System.getenv("HADOOP_HOME") + "/lib/hadoop.ddl");
贺雅健
2023-03-14

我也面临同样的问题。为我带来奇迹的解决方案是,您需要为您正在使用的各个hadoop版本下载一个bin文件夹。下载后,用新的bin文件夹替换旧的bin文件夹,并替换winutil。hadoop/bin/winutil中的exe。exe。

安聪
2023-03-14

我相信您的HADOOP-HOME=C:\HADOOP\HADOOP-2.7.1是指向HADOOP二进制文件/库的,相反,您应该需要一个名为WINUTILS的工具。EXE在Windows中工作。

您可以从git下载Hadoop版本的winutils,并将Hadoop\u HOME映射到winutils的根目录。https://github.com/steveloughran/winutils

资料来源:

从Hadoop的合流来看:Hadoop需要Windows上的本机库才能正常工作,这包括访问file://filesystem,Hadoop使用一些Windows API来实现类似posix的文件访问权限

https://cwiki.apache.org/confluence/display/HADOOP2/WindowsProblems

 类似资料:
  • 守则 @RestController的代码:

  • 我试图将一个目录中的几个csv文件读入pandas,并将它们连接到一个大数据帧中,但出现以下错误: 这是我的密码 我不知道为什么它不起作用。我试图用chmod解决这个问题,但一切都变了

  • 问题内容: 启动Java应用程序时,尝试保存图像时出现异常。但是,在Eclipse中,一切正常。该应用程序是使用fatjar构建的,并且还选择了必需的库(jar_imageio.jar和ij.jar)进行导出。 我尝试使用ImageIO和ImageJ: a。)ImageIO: b。)ImageJ: 问题答案: 正如@Victor说的,我认为您应该看看 我昨天才遇到这个问题,这很棘手。有类似的问题在

  • 编辑:我刚刚在清理项目并使缓存无效后重新启动了Android Studio。现在我发现了这个错误- 下面的错误会无限打印。 我做错了什么?

  • 问题:我正在按照本指南通过Spring MVC上传文件:https://Spring.io/guides/gs/uploading-files/。但是,当我这样做时,当我通过.jsp页面上的表单上传一个文件时,我总是会收到以下错误: HTTP状态400-所需的字符串参数“name”不存在 类型状态报告 message Required字符串参数“name”不存在 描述客户端发送的请求语法不正确。

  • 我正在处理一个包含uni_key和createdDate两列的数据帧。我运行一个SQL查询并将结果保存到中,现在我想将这些结果保存到csv文件中。有什么方法可以做到这一点吗?这是一个代码片段: 此代码当前出现以下错误: AttributeError:“DataFrameWriter”对象没有属性“csv”