首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spark Job将数据帧写入已分区的增量表

Spark Job将数据帧写入已分区的增量表
EN

Stack Overflow用户
提问于 2021-11-10 18:24:56
回答 1查看 448关注 0票数 1

运行databricks以读取csv文件,然后另存为分区增量表。

文件中的总记录为179619219条。它被划分为A列(8419个唯一值)、年份( 10年)和月份。

"month").format("delta").mode("append").save(path) (“A”,"year",df.write.partitionBy

作业在写入步骤中停滞,并在运行5-6小时后中止

EN

回答 1

Stack Overflow用户

发布于 2021-11-10 18:50:53

这是一个非常糟糕的分区模式。您只是为列A指定了太多的唯一值,而额外的分区会创建更多的分区。Spark将需要创建至少90k的分区,这将需要创建一个单独的文件(小),等等。小文件正在损害性能。

对于非增量表,分区主要用于在读取数据时执行数据跳过。但对于Delta lake表,分区可能并不那么重要,因为Delta on Databricks包括data skipping,您可以应用ZOrder等。

我建议使用不同的分区模式,例如,仅使用year + month,并在写入数据后在A列上使用ZOrder进行优化。这将导致只创建几个具有较大文件的分区。

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

https://stackoverflow.com/questions/69918392

复制
相关文章

相似问题

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