本地模式下(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

相关文章
|
9月前
|
SQL Java 关系型数据库
Java连接MySQL数据库环境设置指南
请注意,在实际部署时应该避免将敏感信息(如用户名和密码)硬编码在源码文件里面;应该使用配置文件或者环境变量等更为安全可靠地方式管理这些信息。此外,在处理大量数据时考虑使用PreparedStatement而不是Statement可以提高性能并防止SQL注入攻击;同时也要注意正确处理异常情况,并且确保所有打开过得资源都被正确关闭释放掉以防止内存泄漏等问题发生。
411 13
|
Java Linux
java的jar后台启动
java的jar后台启动
265 14
|
消息中间件 存储 NoSQL
java连接redis和基础操作命令
通过以上内容,您可以掌握在Java中连接Redis以及进行基础操作的基本方法,进而在实际项目中灵活应用。
726 30
|
Java Maven
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
3266 8
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
|
Java Linux 数据库
java连接kerberos用户认证
java连接kerberos用户认证
473 22
|
前端开发 JavaScript Java
Java打包jar运行时分离lib和jar
在`pom.xml`的`build`节点中,设置`packaging`为`jar`,并配置插件分离依赖库到`lib`目录和资源文件到`resources`目录。这样可以在运行时通过`-Dloader.path=lib,resources`加载外部依赖和资源文件,便于独立升级依赖库和修改资源文件,而无需重新打包程序。具体插件包括`maven-dependency-plugin`、`maven-resources-plugin`和`spring-boot-maven-plugin`等。
1033 2
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
816 2
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
361 3
|
数据采集 分布式计算 Java
Kettle的Java开发环境需要什么jar包?
【10月更文挑战第24天】Kettle的Java开发环境需要什么jar包?
563 2