本地模式下(local),java连接spark调用scala语言打成的jar包

简介: 本地模式下(local),java连接spark调用scala语言打成的jar包 一,环境构建 1、spark版本 2、Scala语言打成的jar,因为Scala和java都是运行在jvm上的字节码类语言,java可以直接调用。

本地模式下(local),java连接spark调用scala语言打成的jar包

一,环境构建

1、spark版本

2、Scala语言打成的jar,因为Scala和java都是运行在jvm上的字节码类语言,java可以直接调用。,当然该包中包含了一些算法,LR、GBDT、决策树、随机森林,以便于数据的训练。

3、maven webapp项目,pom引入包如下:

<!-- Begin:spark包 -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>${spark.version}</version>
</dependency>
<!-- <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId>
<version>${hadoop.client.version}</version> </dependency> -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_2.11</artifactId>
<version>${spark.version}</version>
</dependency>

<!-- End:spark包 -->

版本是:<spark.version>2.2.0</spark.version>

3.spark连接工具类:

package cfca.xfraud.afmls.util.spark;

import org.apache.spark.SparkContext;
import org.apache.spark.sql.SparkSession;
import cfca.xfraud.afmls.common.Constants;
import cfca.xfraud.afmls.exception.CodeException;
import cfca.xfraud.dataprocess.DataProcess;
import cfca.xfraud.model.DesicionTree;
import cfca.xfraud.model.GBDTree;
import cfca.xfraud.model.LR;
import cfca.xfraud.model.RFTree;
/**
* @Author zhangzhongqiu
* @Description spark工具类
* @version 1.2.0
* @since jdk1.8
* @date 2018-03-06
*
*
*/
public class SparkUtil {
private static  SparkSession sparkSession;
static{
SparkContext sparkContext = new SparkContext(Constants.SPARK_LOCAL_PATTERN, Constants.APP_NAME);
sparkSession = new SparkSession(sparkContext);
}

/**
* 数据预处理运行状态
* @param appName
* @param dataPattern
* @return
* @throws Exception
* @throws CodeException
*/
public static boolean runDataProcessStatus(int dataPattern,String trainTime) throws Exception {
boolean isSuccess=false;
try {
isSuccess = new DataProcess(sparkSession).runDataProcess(dataPattern,trainTime);
} catch (Exception e) {
throw e;
}
return isSuccess;
}

/**
* 数据训练过程
* @param algorithmPattern
* @param depth
* @param trainTime
* @return
* @throws Exception
*/
public static boolean runTrainData(String algorithmPattern,int depth,String trainTime) throws Exception{
boolean isRunSuccess=false;

try {

if(Constants.STR_ZERO.equals(algorithmPattern)){
isRunSuccess = new LR(sparkSession).lrClassificationModel(20,0.2,trainTime);

}

if(Constants.STR_ONE.equals(algorithmPattern)){
isRunSuccess = new DesicionTree(sparkSession).decisionTreeClassificationModel(20,trainTime);

}

if(Constants.STR_TWO.equals(algorithmPattern)){
isRunSuccess=new GBDTree(sparkSession).GBDTreeClassificationModel(6,20,trainTime);

}

if(Constants.STR_THREE.equals(algorithmPattern)){
isRunSuccess = new RFTree(sparkSession).rfTreeClassificationModel(100,trainTime);
}
} catch (Exception e) {
throw e;
}
return isRunSuccess;
}
}

主要是建立local模式下的sparkSession作为凭证,进行操作,蓝色字体来自于Scala包中的代码,只需要在相应的类中提供函数入口就好了。

原文地址http://www.bieryun.com/2457.html

相关文章
|
2月前
|
存储 Java 关系型数据库
高效连接之道:Java连接池原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。频繁创建和关闭连接会消耗大量资源,导致性能瓶颈。为此,Java连接池技术通过复用连接,实现高效、稳定的数据库连接管理。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接池的基本操作、配置和使用方法,以及在电商应用中的具体应用示例。
84 5
|
3月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
207 6
|
3月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
96 2
|
2月前
|
Java Scala
Scala 模式匹配
Scala 模式匹配
30 3
|
3月前
|
Java 关系型数据库 MySQL
如何用java的虚拟线程连接数据库
本文介绍了如何使用Java虚拟线程连接数据库,包括设置JDK版本、创建虚拟线程的方法和使用虚拟线程连接MySQL数据库的示例代码。
82 6
如何用java的虚拟线程连接数据库
|
2月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
66 3
|
3月前
|
分布式计算 大数据 Java
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
52 1
大数据-86 Spark 集群 WordCount 用 Scala & Java 调用Spark 编译并打包上传运行 梦开始的地方
|
2月前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
54 1
|
2月前
|
Java 数据库连接 数据库
Java连接池在数据库性能优化中的重要作用。连接池通过预先创建和管理数据库连接,避免了频繁创建和关闭连接的开销
本文深入探讨了Java连接池在数据库性能优化中的重要作用。连接池通过预先创建和管理数据库连接,避免了频繁创建和关闭连接的开销,显著提升了系统的响应速度和吞吐量。文章介绍了连接池的工作原理,并以HikariCP为例,展示了如何在Java应用中使用连接池。通过合理配置和优化,连接池技术能够有效提升应用性能。
64 1
|
3月前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
290 6