我要用 Apache Spark
用于处理大文本文件,其中在处理周期中是将文本部分与来自大sql表的数据进行比较的部分。
任务是:
1) Process files and break text into pieces
2) Compare pieces with database ones
当然,瓶颈将是sql。我是个新手 Apache Spark
虽然我确信 Subtask #1
是不是“他的人”,我不太确定 Subtask #2
可以由spark处理(我的意思是,以有效的方式)。
问题是怎么做 Spark
在并行和分布式环境中处理来自大型sql的iterable选择(也许,尽可能多地缓存?)?
1条答案
按热度按时间50few1ms1#
按请求作为答复发布:
如果您需要重复处理来自sql数据源的数据,我通常认为使用sqoop将数据拉入hdfs是值得的,这样我的处理就可以更容易地运行。这在我开发数据流时特别有用,因为我经常会在短时间内对一个数据样本多次运行同一个作业,如果它是sqoope的,我不必每次都访问数据库服务器。
如果您的作业是周期性/批处理样式(每日数据清理或报告之类的),那么这可能是一个足够的实现,在hdfs中收集历史数据最终会多次用于其他目的。
如果您需要实时、最新的数据,那么您需要使用jdbcrdd,如另一个答案中所述,它允许您将sql数据源视为spark数据流中的rdd。
祝你好运。