【发布时间】:2018-04-26 10:49:49
【问题描述】:
我是 Spark 的新手。我有一个场景,我需要从 AWS s3 读取和处理 CSV 文件。这个文件是每天生成的,所以我需要读取和处理它并将数据转储到 Postgres 中。
我想并行处理这个巨大的文件以节省时间和内存。
我想出了两个设计,但我对 spark 有点困惑,因为 spark 上下文需要与所有 s3 存储桶打开连接。
- 使用 Spark Streaming 从 s3 读取 CSV 并处理并逐行转换为 JSON 并将 JSON 数据附加到 Postgres 的 JSONB 列中。
- 使用 spring & java -> 在服务器上下载文件然后开始处理并将其转换为 JSON。
谁能帮我找到正确的方向?
【问题讨论】:
-
您将要处理的 S3 对象的估计大小是多少?
-
您绝对应该选择选项 1,即流式传输文件内容并对其进行处理。由于这种方法比选项 2 好得多,因为您不需要很多资源来实现流式解决方案。
-
@piy26 最初大约为 100 MB。
-
@himanshuIIITian 能否提供一些参考指针。
标签: java spring apache-spark amazon-s3 spring-xd