增量S3文件,我做了如下管道: 任务管理器 - > SQS - >刮板工人(我的应用程序) - > AWS流水 - > S3文件 - >星火 - >红移(?)。如何处理在星火
有些事情我试图解决/改进,我会很乐意指导:
- 刮板可能得到复制数据,并再次刷新他们流水,这将导致火花的DUP。我应该在开始计算之前使用Distinct函数在火花中解决这个问题吗?
- 我并没有删除S3处理过的文件,所以数据越来越大。这是一个很好的做法吗? (以s3作为输入数据库)或者我应该处理每个文件并在spark完成后删除它?目前我正在做
sc.textFile("s3n://...../*/*/*")
- 这将收集我所有的桶文件并运行计算。 - 要将结果放入Redshift(或s3) - >我该如何增量执行此操作?也就是说,如果s3变得越来越大,那么红移会有重复的数据......我以前总是冲洗它吗?怎么样?
你可以有你的水桶要处理的元素,一旦他们已推,将它们移动到另一个桶,所以你保留一份副本如果需要的话,但你不会处理它们第二次 –