我在关系数据库中有非常大的数据(近70TB未压缩),需要在s3中加载并转换为镶木地板,并按年份,月份,col1和col2对数据进行分区。
这将是日常工作,我有70Node集群,每个集群有256GB Ram,每个集群有64Vcore。我们正在尝试使用spark通过properitery连接器转储数据,并且转储数据非常快。它基本上以CSV格式分多个数据块转储到S3中的临时位置。数据以64 mb csv文件的100万个数据块转储。
不进行分区,转换成镶木地板的数据将在3个小时内完成,包括数据的卸载。
问题陈述:
根据分区的要求,我的数据高度不对称,因为近年来有70%的数据,并且在此范围内,col1和col2均也极大地偏斜。
当我将文件转换为无分区的拼花地板时,我得到了成千上万个小文件,并且多个任务失败,并出现s3-slowdown请求率错误。如果我尝试合并或重新分区数据,则会遇到重新排列/内存中断的问题。我试图避免多次读取数据,因为转储的数据是未分区的,我可能最终每次都要读取整个1M文件进行过滤。
有没有一种方法可以在分区后重新分区(合并)文件?
答案 0 :(得分:0)
感谢您的所有评论。我能够解决问题并能够达到要求。
整个过程现在将在4-5小时内完成。