Spark菜鸟学习营Day6 分布式代码运行调试
Spark菜鸟学习营Day6
分布式代码运行调试
作为代码调试,一般会分成两个部分
- 语法调试,也就是确定能够运行
- 结果调试,也就是确定程序逻辑的正确
其实这个都离不开运行,所以我们说一下如何让开发的Spark程序运行。
Spark的代码有一个特色,就是延时运行机制,就是当我们调用map等方法时,并不会立即触发运行。
而是会等待后续统一触发的处理。
所以我们需要在程序加入这个触发处理的环节。
这里分三步:
- 步骤1:在程序中使用append方法输出计算结果
appendResultRDD(extendedQtslRDD, QtslTempPojoExtend.class);
- 步骤2:在测试程序中获取输出,并且进行打印
printResult(
result.seek("QtslTempPojoExtend", QtslTempPojoExtend.class)
.get());
- 步骤3:如果结果正确,请将控制台中打印的运行结果保存为json文件,并添加对应断言,这样我们就形成了一个自动化测试案例!!!
assertRDDEquals(
result.seek("QtslTempPojoExtend", QtslTempPojoExtend.class)
.get(),
"OUT_TRD_QTSL_EXTEND_600_1",
"测试第一个输出");
这样就完整完成了我们一个程序的开发!!!
Spark菜鸟学习营Day6 分布式代码运行调试的更多相关文章
- Spark菜鸟学习营Day5 分布式程序开发
Spark菜鸟学习营Day5 分布式程序开发 这一章会和我们前面进行的需求分析进行呼应,完成程序的开发. 开发步骤 分布式系统开发是一个复杂的过程,对于复杂过程,我们需要分解为简单步骤的组合. 针对每 ...
- Spark菜鸟学习营Day1 从Java到RDD编程
Spark菜鸟学习营Day1 从Java到RDD编程 菜鸟训练营主要的目标是帮助大家从零开始,初步掌握Spark程序的开发. Spark的编程模型是一步一步发展过来的,今天主要带大家走一下这段路,让我 ...
- Spark菜鸟学习营Day4 单元测试程序的编写
Spark菜鸟学习营Day4 单元测试程序的编写 Spark相比于传统代码是比较难以调试的,单元测试的编写是非常必要的. Step0:需求分析 在测试案例编写前,需完成需求分析工作,明确程序所有的输入 ...
- Spark菜鸟学习营Day3 RDD编程进阶
Spark菜鸟学习营Day3 RDD编程进阶 RDD代码简化 对于昨天练习的代码,我们可以从几个方面来简化: 使用fluent风格写法,可以减少对于中间变量的定义. 使用lambda表示式来替换对象写 ...
- Spark菜鸟学习营Day2 分布式系统需求分析
Spark菜鸟学习营Day2 分布式系统需求分析 本分析主要针对从原有代码向Spark的迁移.要注意的是Spark和传统开发有着截然不同的思考思路,所以我们需要首先对原有代码进行需求分析,形成改造思路 ...
- 【Spark深入学习-11】Spark基本概念和运行模式
----本节内容------- 1.大数据基础 1.1大数据平台基本框架 1.2学习大数据的基础 1.3学习Spark的Hadoop基础 2.Hadoop生态基本介绍 2.1Hadoop生态组件介绍 ...
- Swift学习笔记(一)搭配环境以及代码运行成功
原文:Swift学习笔记(一)搭配环境以及代码运行成功 1.Swift是啥? 百度去!度娘告诉你它是苹果最新推出的编程语言,比c,c++,objc要高效简单.能够开发ios,mac相关的app哦!是苹 ...
- 【Spark深入学习 -13】Spark计算引擎剖析
----本节内容------- 1.遗留问题解答 2.Spark核心概念 2.1 RDD及RDD操作 2.2 Transformation和Action 2.3 Spark程序架构 2.4 Spark ...
- Spark基础学习精髓——第一篇
Spark基础学习精髓 1 Spark与大数据 1.1 大数据基础 1.1.1 大数据特点 存储空间大 数据量大 计算量大 1.1.2 大数据开发通用步骤及其对应的技术 大数据采集->大数据预处 ...
随机推荐
- 9. Android框架和工具之 SlidingMenu(抽屉菜单)
详见为知笔记:Android / Android用户界面优化 / Android SlidingMenu菜单栏程序设计
- Redis入门(优势,环境,字符串,哈希,列表)
Redis从它的许多竞争继承来的三个主要特点: Redis数据库完全在内存中,使用磁盘仅用于持久性. 相比许多键值数据存储,Redis拥有一套较为丰富的数据类型. Redis可以将数据复制到任意数量的 ...
- spring + Quartz定时任务配置
<bean id="exportBatchFileTask" class="com.ydcn.pts.task.ExportBatchFileTask"& ...
- NIS客户端限制用户登录
公司所有账号信息由一台 NIS Server 统一管理,但是有几台 NIS Client 只允许某几个用户登录.这里通过PAM机制来实现该需求. 1. 需要配置的文件 (/etc/pam.d/目录下) ...
- 浅析console和浏览器命令行API
一.console对象: F12或者Control+Shift+i(Win)/ Alt+Command+i(Mac)打开浏览器自带的开发工具,选择顶部tab中的最后一项console,这样你就可以尽情 ...
- 剑指Offer42 左旋字符串
/************************************************************************* > File Name: 42_LeftRo ...
- 从模态视图push到另一个视图
//需要给模态视图创建一个Nav,然后再调用presentViewController if (_loginVC == nil) { _loginVC = [[LoginViewController ...
- iOS 父子关系
1.面向对象特征,类的继承 成员变量(实例变量) 子类继承父类所有功能,只能直接(访问)调用父类中的.h中的protect和public成员变量(实例变量)及方法, .h中的私有的成员变量,子类不能直 ...
- Revit二次开发-根据Element获取系统族信息
Element element = doc.getElement(elementId); Autodesk.Revit.DB.Parameter familyType = element.get_Pa ...
- init: Associated with Deployer 'Catalina:type=Deployer,host=localhost'
四月 12, 2014 1:54:12 上午 org.apache.catalina.core.ApplicationContext log信息: HTMLManager: init: Associ ...