首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >星火如何写到s3或天蓝色的水珠上

星火如何写到s3或天蓝色的水珠上
EN

Stack Overflow用户
提问于 2020-11-25 20:04:48
回答 1查看 207关注 0票数 0

当我们使用spark在AWS s3或Azure blob存储上写入文件时,我们只需编写:

df.write.parquet(“/online/path/文件夹”)

然后将内容写入指定文件夹下的数百个文件,如下所示:

代码语言:javascript
运行
复制
/online/path/folder/f-1
/online/path/folder/f-2
...
/online/path/folder/f-100

我的问题是,既然写入是在几十个或数百个火花执行程序上同时执行的,那么它们如何避免写入同一个文件呢?另一个重要的问题是,什么是某些执行者失败并重新启动?该重新启动的执行器会在该文件失败之前写入该文件吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-25 22:28:51

Spark将UUID、分区号和其他与任务相关的信息添加到文件名中,从而保证文件名在所有执行者和任务之间的唯一性。

代码语言:javascript
运行
复制
part-00000-a4ec413d-cb30-4103-afe1-410c11a164e8-c000.snappy.parquet

类似的问题:Could anyone please explain what is c000 means in c000.snappy.parquet or c000.snappy.orc??

默认情况下,Spark将文件写入临时文件夹并等待所有还原程序完成,然后执行提交作业操作,将所有文件移动到目标文件夹。因此,在失败的情况下,Spark可以安全地启动一个新的执行器来完成失败的任务并重写结果。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65011950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档