Apache Spark:将结果保存到数据库

时间:2015-10-29 13:14:43

标签: scala hadoop apache-spark bigdata spark-streaming

我目前正在尝试Spark流式传输。我已经能够获得所需的结果,但现在我只是打印到终端终端,如:

myResults.print()

将结果打印到终端。

我想要实现的是一种类似于this的架构。

有没有办法将这些结果写入数据库中的表。 我该怎么做以及我应该使用哪个数据库?

2 个答案:

答案 0 :(得分:0)

我应该使用哪个数据库?

这完全取决于您对数据的要求,一旦它持久保存到磁盘上。您可以从Mysql,Oracle,MongoDB等中选择任何适合您需要的数据库。或者您可以将其保存到Hadoop文件系统。

我该怎么做?

您可以使用Spark Map功能迭代所有数据并插入您选择的数据库。像

    statuses.foreach(new VoidFunction<String>() {
        @Override
        public Void call(String s) throws Exception {
            //You Code to parse the String and insert into the database of your choice.
        }
    });

希望有所帮助

答案 1 :(得分:0)

  

我该怎么做

使用foreachPartition并写一个保存到您选择的数据源的VoidFunction

  

我应该使用哪个数据库?

你在玩什么?您打算如何处理数据?一根绳子有多长?