gpt4 book ai didi

hadoop - rdd.saveAsTextFile 似乎不起作用,但重复抛出 FileAlreadyExistsException

转载 作者:可可西里 更新时间:2023-11-01 14:26:38 28 4
gpt4 key购买 nike

我正在运行 dataFrame.rdd.saveAsTextFile("/home/hadoop/test") 试图将数据帧写入磁盘。这执行没有错误,但未创建文件夹。此外,当我再次运行相同的命令时(在 shell 中)抛出异常:

org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://ip-xxx-xx-xx-xx.ec2.internal:8020/home/hadoop/feet already exists

知道这是为什么吗?提交移动(客户端、集群)是否有细微差别会对此产生影响?

编辑:

我有权在 /home/hadoop 中创建目录,但我无法在 rdd.saveAsTextFile("file:/home/hadoop/测试”)。结构如下所示:

/home/hadoop/test/_temporary/0

如果我没有从命令行在 test 中创建目录的权限,如何创建 _temporary0?有没有办法更改这些创建的目录的权限?

编辑2:

最后,我使用 rdd.coalesce(1).saveAsTextFile("s3://...") 写入了 s3。这仅在您的输出非常小时才可行 - 因为 coalesce(n) 将导致 RDD 存在并仅在 n 个 worker 上进一步处理。在我的例子中,我选择了 1 名工作人员,这样文件将由一名工作人员生成。这给了我一个文件夹,其中包含一个 part-00000 文件,其中包含我的所有数据。

最佳答案

https://spark-project.atlassian.net/browse/SPARK-1100 saveAsTextFile 永远不能静默覆盖已经存在的文件夹。

如果您收到 java.io.IOException: Mkdirs failed to create file:... 这可能意味着您在尝试写入输出路径时遇到权限问题。

如果您提供更多上下文信息,答案可能会更有帮助。比如:你在本地 shell 上运行吗?集群外壳?哪种类型的集群?

编辑:我认为您正面临该错误,因为所有执行者都试图写入并非所有执行者都可用的相同路径。

关于hadoop - rdd.saveAsTextFile 似乎不起作用,但重复抛出 FileAlreadyExistsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32185575/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com