我将使用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的可迭代选择(可能,可以缓存多少?)?
答案 0 :(得分:1)
根据请求发布答案:
如果您需要重复处理来自SQL数据源的数据,我通常会发现使用Sqoop将数据提取到HDFS是值得的,这样我的处理就可以更轻松地运行。这在我开发数据流时特别有用,因为我经常在短时间内多次对数据样本执行相同的工作,如果已经过多次,我就不会这样做。每次都必须打到数据库服务器。
如果您的工作是定期/批处理(每日数据清理或报告或其他),这可能是一个充分的实施,并且在HDFS中拥有一组历史数据最终可用于其他目的多次。
如果您需要实时,最新的数据,那么您将要使用JdbcRDD,如this other answer中所述,它允许您将SQL数据源视为Spark数据流中的RDD。
祝你好运。