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

Pyspark随机写入tos3失败

姜俊友
2023-03-14

将word2vec模型写入S3,如下所示:

model.save(sc, "s3://output/folder")

我通常没有问题,所以没有AWS凭据问题,但我随机得到以下错误。

30年1月17日20:35:21警告配置实用程序:无法使用正确的权限创建临时目录:/mnt2/s3 java。nio。文件AccessDeniedException:/mnt2在sun。nio。fs。UnixexException。sun上的translateToIOException(UnixException.java:84)。nio。fs。UnixexException。sun上的rethrowAsIOException(unixexException.java:102)。nio。fs。UnixexException。在sun上rethrowAsIOException(unixexException.java:107)。nio。fs。UnixFileSystemProvider。位于java的createDirectory(UnixFileSystemProvider.java:384)。nio。文件文件。在java上创建目录(Files.java:674)。nio。文件文件。在java上创建和检查目录(Files.java:781)。nio。文件文件。在com上创建目录(Files.java:767)。亚马逊。ws。电子病历。hadoop。fs。util。配置Utils。GetTestedTempPath(ConfigurationUtils.java:216)位于com。亚马逊。ws。电子病历。hadoop。fs。s3n。S3NativeFileSystem。在com上初始化(S3NativeFileSystem.java:447)。亚马逊。ws。电子病历。hadoop。fs。EmrFileSystem。在组织中初始化(EmrFileSystem.java:111)。阿帕奇。hadoop。fs。文件系统。在org上创建文件系统(FileSystem.java:2717)。阿帕奇。hadoop。fs。文件系统。访问org上的200美元(FileSystem.java:93)。阿帕奇。hadoop。fs。文件系统$缓存。位于org的getInternal(FileSystem.java:2751)。阿帕奇。hadoop。fs。文件系统$缓存。获取(FileSystem.java:2733),网址为org。阿帕奇。hadoop。fs。文件系统。在org上获取(FileSystem.java:377)。阿帕奇。hadoop。fs。路径位于org的getFileSystem(Path.java:295)。阿帕奇。hadoop。mapreduce。lib。输出FileOutputCommitter。(FileOutputCommitter.java:113)位于org。阿帕奇。hadoop。mapreduce。lib。输出FileOutputCommitter。(FileOutputCommitter.java:88)位于org。阿帕奇。拼花地板hadoop。ParquetOutputCommitter。(ParquetOutputCommitter.java:41)位于org。阿帕奇。拼花地板hadoop。ParquetOutputFormat。getOutputCommitter(ParquetOutputFormat.java:339)

已经在不同的集群中进行了尝试,但还没有找到答案。这是pyspark的已知问题吗?

共有1个答案

仇龙光
2023-03-14

这可能与SPARK-19247有关。截至今天(Spark 2.1.0),ML编写器将所有数据重新分区到单个分区,如果是大型模型,则可能会导致失败。如果这确实是问题的根源,您可以尝试使用相应PR中的代码手动修补发行版。

 类似资料:
  • 我正在尝试通过PySpark向cassandra表写入两行。我使用datastax cassandra连接器,方法是使用以下命令启动PySpark2 shell: 我使用以下代码创建了一个dataframe:

  • 问题内容: 我建立了一个简单的测试,它可以无限循环地创建和删除文件(名称不变)。该测试确实运行了几秒钟(有时超过77,000次迭代!),然后由于以下异常而失败: 这是测试逻辑: 这怎么可能?删除呼叫不会失败。它会说明一切。因此删除总是成功但失败。这就是MSDN关于Win32 API函数的说法: DeleteFile函数在关闭时将文件标记为要删除。因此,在关闭文件的最后一个句柄之前,不会发生文件删除

  • 图 14.12 中的程序把数据写到文件 credit dm 中。ostream 的函数 seekp 和 write 用来将数据存储在文件中指定的位置。程序先用函数 seekp 把 put 文件位置指针指向文件中指定的位置,然后用 write 函数写入数据。执行范例见图 14.13。注意图 14.12 的程序包括图 14.11 中定义的头文件 clntdata h。 1 // Fig. 14.12:

  • 它给我所有的数据,但我只需要3个随机数据。我有谷歌关于获得随机N没有数据,但为什么不为我工作?

  • 主要内容:文件定位函数rewind和fseek,文件的随机读写前面介绍的文件读写函数都是顺序读写,即读写文件只能从头开始,依次读写各个数据。但在实际开发中经常需要读写文件的中间部分,要解决这个问题,就得先移动文件内部的位置 指针,再进行读写。这种读写方式称为 随机读写,也就是说从文件的任意位置开始读写。 实现随机读写的关键是要按要求移动位置指针,这称为文件的定位。 文件定位函数rewind和fseek 移动文件内部位置指针的函数主要有两个,即 rewind(

  • 我从两个方面建议了一些方法,一个是使用spring AOP支持,另一个是()建议所有带有注释的方法。在我的单元测试中,我试图通过破坏方法契约来强制抛出错误,但有时验证是到位的(上面提到的后处理器强加的建议),有时不起作用。有人经历过类似的事情吗。 下面是我正在尝试做的事情的一个小片段: 注释(可记录代码) 使用@Validated注释注释的接口(这里有相关信息的链接)。 实现此接口的基类:公共抽象