一个Spark工作线程中的数据库查询

时间:2016-01-10 18:12:17

标签: database apache-spark bigdata

最近我开始学习Spark来加速处理。在我的情况下,Spark应用程序的输入RDD不包含批处理所需的所有数据。因此,我必须在每个工作线程中执行一些SQL查询。

可以预处理所有输入数据,但这需要很长时间。

我知道以下问题可能也是如此"一般",但任何经验都会有所帮助。

  1. 是否可以在工作线程中执行一些SQL查询?
  2. 如果单个查询很复杂,那么数据服务器上的调度是否会成为瓶颈?
  3. 哪个数据库适合这种情况(可能具有良好的并发能力)? MongoDB的? * SQL?

1 个答案:

答案 0 :(得分:0)

如果没有具体的用例,很难回答你的一些问题。但以下通用答案可能会有所帮助

  1. 是。您可以访问外部数据源(RDBMS,Mongo等)。您可以使用mapPartitions通过创建一次连接来提高性能。查看example here
  2. 无需查看具体示例即可回答
  3. 数据库选择取决于用例。