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

时间:2015-03-05 20:51:44

标签: hadoop parallel-processing apache-spark

我将使用Apache Spark来处理大文本文件,其中处理周期是将文本部分与来自大型SQL表的数据进行比较的一部分。

任务是:

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

当然,瓶颈将是一个SQL。我对Apache Spark完全陌生,虽然我确定,Subtask #1是"他的家伙",我不完全确定, Spark可以处理Subtask #2(我的意思是,以有效的方式)。

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

1 个答案:

答案 0 :(得分:1)

根据请求发布答案:

如果您需要重复处理来自SQL数据源的数据,我通常会发现使用Sqoop将数据提取到HDFS是值得的,这样我的处理就可以更轻松地运行。这在我开发数据流时特别有用,因为我经常在短时间内多次对数据样本执行相同的工作,如果已经过多次,我就不会这样做。每次都必须打到数据库服务器。

如果您的工作是定期/批处理(每日数据清理或报告或其他),这可能是一个充分的实施,并且在HDFS中拥有一组历史数据最终可用于其他目的多次。

如果您需要实时,最新的数据,那么您将要使用JdbcRDD,如this other answer中所述,它允许您将SQL数据源视为Spark数据流中的RDD。

祝你好运。