java - 如何将 Apache Spark 与 Spring MVC Web 应用程序集成以实现交互式用户 session

标签 java spring-mvc apache-spark machine-learning apache-spark-mllib

我正在尝试使用 Apache Spark MLlib 构建电影推荐系统。 我已经用 java 编写了一个推荐器代码,当使用 spark-submit 命令运行时它工作正常。

我的运行命令是这样的

bin/spark-submit --jars/opt/poc/spark-1.3.1-bin-hadoop2.6/mllib/spark-mllib_2.10-1.0.0.jar --class "com. recommender.MovieLensALSExtended"--master local[4]/home/sarvesh/Desktop/spark-test/recommender.jar/home/sarvesh/Desktop/spark-test/ml-latest-small/ratings.csv/home/sarvesh/桌面/spark-test/ml-latest-small/movies.csv

现在我想在现实世界场景中使用我的推荐器,作为一个 Web 应用程序,我可以在其中查询推荐器以给出一些结果。

我想构建一个 Spring MVC web 应用程序,它可以与 Apache Spark Context 交互并在询问时给我结果。

我的问题是如何构建一个与集群上运行的 Apache Spark 交互的应用程序。因此,当请求到达 Controller 时,它应该接受用户查询并获取与控制台上 spark-submit 命令输出相同的结果。

据我搜索,我发现我们可以使用 Spark SQL,与 JDBC 集成。但是我没有找到任何好的例子。

提前致谢。

最佳答案

只需在 Spring 中将 spark 上下文和 session 作为 bean 传递

@Bean
public SparkConf sparkConf() {
    SparkConf sparkConf = new SparkConf()
            .setAppName(appName)
            .setSparkHome(sparkHome)
            .setMaster(masterUri);

    return sparkConf;
}

@Bean
public JavaSparkContext javaSparkContext() {
    return new JavaSparkContext(sparkConf());
}

@Bean
public SparkSession sparkSession() {
    return SparkSession
            .builder()
            .sparkContext(javaSparkContext().sc())
            .appName("Java Spark Ravi")
            .getOrCreate();
}

类似的基于xml的配置

此处提供了带有 spring 和 spark 的完整工作代码

https://github.com/ravi-code-ranjan/spark-spring-seed-project

关于java - 如何将 Apache Spark 与 Spring MVC Web 应用程序集成以实现交互式用户 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30795960/

相关文章:

java - 我们真的需要一个 REST Java 客户端吗?或者我们可以直接从 HTML 页面触发 REST 请求

java - maven部署配置信息到tomcat

angularjs - Uncaught Error : [$injector:modulerr] http://errors. angularjs.org/1.2.16

scala - Scala/Spark数据帧: find the column name corresponding to the max

scala - 如何使用 withColumn Spark Dataframe scala with while

java - 支柱 1.3 : How to set a default Locale in a web app?

java - 如何修复 Java(扫描程序)中的 'cannot find symbol' 错误?

spring-boot - 我们可以使用 Electron 工具为 Spring boot web mvc 创建独立的应用程序吗?

spring - Spring MVC 中的数组 @ModelAttribute 扩展

apache-spark - Spark MLLib : convert arbitrary,稀疏特征到固定长度向量