Spark单机运行时,都是跑Main方法,那如何集成到Spring Boot实现http调用呢?
接下实现一个从一个文本里排序出频次最高的前10名
项目环境:
JDK:1.8;
Spark:2.2.0
项目搭建:
pom.xml 依赖:
org.springframework.boot
spring-boot-starter-parent
1.5.3.RELEASE
UTF-8
UTF-8
1.8
2.11
2.2.0
org.springframework.boot
spring-boot-starter-aop
org.springframework.boot
spring-boot-starter-web
org.apache.spark
spark-core_${scala.version}
${spark.version}
org.slf4j
slf4j-log4j12
log4j
log4j
provided
org.apache.spark
spark-streaming_${scala.version}
${spark.version}
provided
org.apache.spark
spark-sql_${scala.version}
${spark.version}
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-configuration-processor
true
配置类:
@Configuration
@ConfigurationProperties(prefix = "spark")
public class SparkContextBean {
private String sparkHome = ".";
private String appName = "sparkTest";
private String master = "local";
@Bean
@ConditionalOnMissingBean(SparkConf.class)
public SparkConf sparkConf() throws Exception {
SparkConf conf = new SparkConf().setAppName(appName).setMaster(master);
return conf;
}
@Bean
@ConditionalOnMissingBean(JavaSparkContext.class)
public JavaSparkContext javaSpa