Spark菜鸟学习营Day4 单元测试程序的编写
Spark菜鸟学习营Day4
单元测试程序的编写
Spark相比于传统代码是比较难以调试的,单元测试的编写是非常必要的。
Step0:需求分析
在测试案例编写前,需完成需求分析工作,明确程序所有的输入和输出情况。
具体请见需求分析章节。
Step1:新建测试案例
测试案例统一放置在如下位置:
compute-->src-->test-->java-->com.icbc.aas.darts.compute-->split.processor

选择New-->Java Class,在窗口中,输入测试代码名称,Kind选择ProcessorTest

如果无法选到ProcessorTest,请在Settings-->File and Code Template,右上角选择Project

在生成的测试案例代码中,首先完善addParams方法。

Step2:输入数据准备
针对每个输入数据,循环以下步骤:
Step2.1:pojo(Java数据结构)建立
运行PojoMaker工具

根据提示,完成pojo的建立

Step2.2:数据文件建立
运行DataPrepareUtil工具。

根据提示,从Oracle取数生成数据文件。
其中,suffix为文件名后缀,用于防止文件互相冲突,建议与代码编号一致。

文件保存在如下路径中

Step2.3:执行数据准备
在prepareData方法中,调用API,执行数据准备。
@Override
public void prepareData(ComputeBatchNode cbn, JavaSparkContext sc, Hashtable params, ComputeResult result) {
//Dateframe:qtsl_temp
mockSparkTempTable("QTSL_TEMP", "_600", cbn);
//Dataframe:par_fund_partner
mockSparkTempTable("PAR_FUND_PARTNER", "_600", cbn);
//Oracle表:out_trd_qtsl_his
mockMybatisTempTable("splitSqlMapper.getQtslHis", "OUT_TRD_QTSL_HIS_600");
//RDD:qtsl_temp
mockSparkRDD("QTSL_TEMP", "_600", cbn, QtslTempPojo.class);
//RDD:par_fund_fill_partner
mockSparkRDD("PAR_SYS_FILL_PARTNER", "_600", cbn, ParSysFillPartnerPojo.class);
doPrepareData(cbn, params);
}
Step3:输出数据准备
Spark菜鸟学习营Day4 单元测试程序的编写的更多相关文章
- Spark菜鸟学习营Day6 分布式代码运行调试
Spark菜鸟学习营Day6 分布式代码运行调试 作为代码调试,一般会分成两个部分 语法调试,也就是确定能够运行 结果调试,也就是确定程序逻辑的正确 其实这个都离不开运行,所以我们说一下如何让开发的S ...
- Spark菜鸟学习营Day5 分布式程序开发
Spark菜鸟学习营Day5 分布式程序开发 这一章会和我们前面进行的需求分析进行呼应,完成程序的开发. 开发步骤 分布式系统开发是一个复杂的过程,对于复杂过程,我们需要分解为简单步骤的组合. 针对每 ...
- Spark菜鸟学习营Day3 RDD编程进阶
Spark菜鸟学习营Day3 RDD编程进阶 RDD代码简化 对于昨天练习的代码,我们可以从几个方面来简化: 使用fluent风格写法,可以减少对于中间变量的定义. 使用lambda表示式来替换对象写 ...
- Spark菜鸟学习营Day2 分布式系统需求分析
Spark菜鸟学习营Day2 分布式系统需求分析 本分析主要针对从原有代码向Spark的迁移.要注意的是Spark和传统开发有着截然不同的思考思路,所以我们需要首先对原有代码进行需求分析,形成改造思路 ...
- Spark菜鸟学习营Day1 从Java到RDD编程
Spark菜鸟学习营Day1 从Java到RDD编程 菜鸟训练营主要的目标是帮助大家从零开始,初步掌握Spark程序的开发. Spark的编程模型是一步一步发展过来的,今天主要带大家走一下这段路,让我 ...
- 【菜鸟学习jquery源码】数据缓存与data()
前言 最近比较烦,深圳的工作还没着落,论文不想弄,烦.....今天看了下jquery的数据缓存的代码,参考着Aaron的源码分析,自己有点理解了,和大家分享下.以后也打算把自己的jquery的学习心得 ...
- 菜鸟学习Andriod-弹窗
菜鸟学习Andriod-弹窗 return new AlertDialog.Builder(ZyScreenSaver.this).setIcon( R.drawable.ic_launcher).s ...
- 菜鸟学习SSH——目录
菜鸟学习Struts--配置Struts环境 菜鸟学习Struts--简易计算器 菜鸟学习Struts--bean标签库 菜鸟学习Struts--Scope属性 菜鸟学习Struts--国际化 菜鸟学 ...
- 菜鸟学习Spring——60s配置XML方法实现简单AOP
一.概述. 上一篇博客讲述了用注解的形式实现AOP现在讲述另外一种AOP实现的方式利用XML来实现AOP. 二.代码演示. 准备工作参照上一篇博客<菜鸟学习Spring--60s使用annota ...
随机推荐
- Java中ThreadLocal的设计与使用
早在Java 1.2推出之时,Java平台中就引入了一个新的支持:java.lang.ThreadLocal,给我们在编写多线程程序时提供了一种新的选择.使用这个工具类可以很简洁地编写出优美的多线程程 ...
- [Arduino] 在串口读取多个字符串,并且转换为数字数组
功能如题目.在串口收到逗号分割的6串数字比如100,200,45,4,87,99然后在6个PWM端口3, 5, 6, 9, 10, 11输出对应PWM值代码注释很详细了,就不再说明了. //定义一个c ...
- 【¥200代金券、iPad等您来拿】 阿里云9大产品免费公测#10月9日-11月6日#
#10.09-11.06#200元代金券.iPad大奖, 9大产品评测活动! 亲爱的阿里云小伙伴们: 云产品的多样性(更多的云产品)也是让用户深度使用云计算的关键.今年阿里云产品线越来越丰富,小云搜罗 ...
- oracle优化辅助SQL语句
--查询正在执行的SQL语句 select a.program, b.spid, c.sql_text,c.SQL_FULLTEXT,c.SQL_ID from v$session a, v$proc ...
- Linux与Windows文件传输实现
Linux与Windows文件传输实现 一.概述 在学习Linux服务器的时候,我们有时需要与Windows下的文件进行交互传输,这个时候我们需要如何实现呢?今天是我第一次在博客园上写文章,此时正值学 ...
- LeetCode 55
Jump Game Given an array of non-negative integers, you are initially positioned at the first index o ...
- revel + swagger 文档也能互动啦
beego 从 1.3 后开始支持自动化API文档,不过,目测比较复杂,一直期望 revel 能有官方支持. revel 确实已经有了官方支持的计划,有可能将在 0.14 版本支持,现在才 0.11. ...
- EntityFramework使用中的一些Bug
1. No Entity Framework provider found for the ADO.NET provider 解决方法:添加 EntityFramework.SqlServer.dl ...
- Oracle DBA需掌握的命令集锦(推荐)
第一章:日志管理 1.forcing log switches sql> alter system switch logfile; 2.forcing checkpoints sql> a ...
- PHP插件技术-插件钩子(hooks)分析
最近准备做一个开源的个人博客系统,因为在构想中要添加插件功能,所以就研究了一下插件功能的实现方法. 插件的功能按照本人自己的理解就是对已有的程序进行功能方面的添加以及改进,插件要与程序所提供的接口进行 ...