我是Spark的新手。我有一个场景,我需要从AWS s3读取和处理CSV文件。这个文件是每天生成的,所以我需要读取并处理它并将数据转储到Postgres中。
我想并行处理这个巨大的文件以节省时间和内存。
我想出了两个设计但我对火花有点困惑,因为火花环境要求连接打开所有s3桶。
任何人都可以帮助我找到正确的方向吗?
答案 0 :(得分:1)
如果它是每天,只有100MB,那么你并不需要大规模工具。我估计<基本下载和处理的分钟,甚至远程,之后是postgres加载的。哪个帖子offers
尝试在本地执行此操作,使用aws s3 cp
复制到本地系统,然后尝试使用postgres。
我不打扰任何并行工具;即使Spark也希望使用32-64MB的块,所以你不会超过2-3个工人。如果文件是.gz,那么你只能得到一个。
那就是说,如果你想学习火花,你可以在火花壳中做到这一点。首先在本地下载,只是为了节省时间和金钱。