Apache Spark 将文件与 SQL 数据进行比较

Apache Spark comparing files with SQL data

我将使用 Apache Spark 来处理大文本文件,其中处理周期是将文本部分与来自大 SQL table.[=17= 的数据进行比较的一部分]

任务是:

1) Process files and break text into pieces
2) Compare pieces with database ones

毫无疑问,瓶颈是SQL。我是 Apache Spark 的新手,虽然我确定 Subtask #1 是 "his guy",但我不完全确定 Subtask #2 可以由 Spark 处理(我的意思是,以有效的方式)。

问题是 Spark 如何在并行和分布式环境中处理来自大 SQL 的可迭代选择(也许,尽可能多地缓存?)?

作为每个请求的答案发布:

如果您需要重复处理来自 SQL 数据源的数据,我通常觉得值得使用 Sqoop 将数据拉入 HDFS,这样我的处理可以 运行 更多容易地。这在我开发数据流时特别有用,因为我经常 运行 在短时间内多次对同一个数据样本进行相同的作业,如果它已被 sqooped 我没有每次都访问数据库服务器。

如果您的工作是 periodic/batch 风格(每日数据清理或报告之类的),这可能是一个足够的实现,并且在 HDFS 中收集历史数据最终可用于许多其他目的次。

如果您需要实时的最新数据,那么您会想要使用 JdbcRDD, as described in this other answer,这样您就可以将 SQL 数据源视为 Spark 中的 RDD数据流.

祝你好运。