在上spark的时候,一开始需要虚拟机模拟真实环境,而spark主要的三种模式:local、standalone、yarn 均可以通过虚拟机模拟。

  这里要讨论的是业务逻辑如何和 spark 结合,具体技术细节可自行查阅资料。

  抛开技术层面,spark 针对的是,数据集的并行操作或者计算逻辑的并行操作:

(1)数据集的并行操作指的是,假设你拥有海量数据(在此并不定义数据集的大小),可以通过将数据集合切分(等切或者非等切,非等切可能需要加入其他操作),一台或者多台机器同时对切分的数据集进行操作;可以理解为数据集的并行 HDFS 文件系统;例如:

sc.textFile(paths, minPartitions)

(2)计算逻辑的并行操作,即拥有的一批数据,需要做同样的业务逻辑操作,即可以将这个业务逻辑分发至每台机器,并行计算,从而快速得到计算结果。同时也可能会涉及 sc.makeRDD( ) 等函数的调用。例如:

case class Person(name: String, age: Int)

// 构造样例类
val people: RDD[Person] = ... // map 执行逻辑函数 或者与其他的算法结合
people.map(逻辑函数)
people.foreach(println)

需要掌握map函数的使用,在调入其他变量的时候,会有很重要的作用。

逻辑操作的并行,需要注意内存问题,如果没有使用broadcast,那executers 或者driver 有可能都复制了内存,所以需要考虑优化内存的问题。

另外一点,当 spark 与 SQL 结合的时候,可以通过自定义UDF函数,在SQL中使用,仅针对改变 sql数据表的数据。例如:

spark.udf.register(
"函数名", // 函数名称
(参数) => { // 函数体
// 操作逻辑
}
) 然后在 SQL 语句中调用这个 "函数名" 函数,例如,
"SELECT 函数名(参数) AS 别名 FROM 表"

当然,通过 DSL(采用DSL方式读取Hive表数据)的方式也是可以的,也是在执行语句进行填写,这里不作展开了。

备注:一般数据集合均可以进行并行读取,但是如果数据集不大,且又是对单个对象操作,这时强行使用spark不便下手了。

SparkCore之业务操作逻辑的更多相关文章

  1. 【Docker】 .Net Core 3.1 webapi 集成EF Code First,使用MySql进行业务操作 、配置swagger (三)

    系列目录: [Docker] CentOS7 安装 Docker 及其使用方法 ( 一 ) [Docker] 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二) [D ...

  2. (05)odoo数据库和业务操作

    以一个例子开头* To-do 向导   # 配置文件       __openerp_.py:         { 'name': 'To-do Tasks Management Assistant' ...

  3. 用好JAVA中的函数式接口,轻松从通用代码框架中剥离掉业务定制逻辑

    大家好,又见面了. 今天我们一起聊一聊JAVA中的函数式接口.那我们首先要知道啥是函数式接口.它和JAVA中普通的接口有啥区别?其实函数式接口也是一个Interface类,是一种比较特殊的接口类,这个 ...

  4. 大型运输行业实战_day11_1_aop理论与aop实际业务操作

    1.aop概述 Spring的AOP:什么叫做AOP:Aspect oritention programming(面向切面编程)什么是切面:看图,业务方法 执行前后.AOP的目的:AOP能够将那些与业 ...

  5. LR翻页脚本并在每页实现业务操作

    性能需求:在列表中删除后有记录,或对列表中的每条记录进行操作(如点击每条记录的“单号”进入订单详情页面,或在列表中对每条记录进行“启用”.“停止”操作) 举例:Vuser脚本模拟用户在订单列表中点击每 ...

  6. SAP采购寄售业务操作步骤

    [转自 http://blog.sina.com.cn/s/blog_6466e5f70100jghg.html] 这里所示的是比较完整的步骤,包含了:信息记录.采购合同.货源清单.采购申请.采购订单 ...

  7. 微信网页授权操作逻辑封装-C#实例

    http://blog.csdn.net/u011127019/article/details/52650619

  8. 业务逻辑审批流、审批流、业务、逻辑、面向对象、工作方式【c#】

    ------需求分析:--------1.先按照实际线下流程说这是什么事情,实际要干什么.2.再转换为面向对象-页面的操作流程,演示demo3.再与相关人员沟通是否可行需要什么地方修正.4.最终:线上 ...

  9. 扩展HT for Web之HTML5表格组件的Renderer和Editor

    在HT for Web提供了一下几种常用的Editor,分别是: slider:拉条 color picker:颜色选择器 enum:枚举类型 boolean:真假编辑器 string:普通的文本编辑 ...

随机推荐

  1. SpringCloud(三)Hystrix断路器

    Hystrix断路器 概述 分布式系统面临的问题 复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败 服务雪崩 多个微服务之间调用的时候,假设微服务A调用微服务B和 ...

  2. 1420. Build Array Where You Can Find The Maximum Exactly K Comparisons

    Given three integers n, m and k. Consider the following algorithm to find the maximum element of an ...

  3. 学就完事了!万星项目带你做 3D 游戏——GitHub 热点速览 v.21.18

    本文首发于「HelloGitHub」微信公众号,搜索「HelloGitHub」点击关注解锁更多宝藏! 作者:HelloGitHub-小鱼干 新手开始学习的时候,都会遇到一个问题:如何开始学 xx?Se ...

  4. 1.4.18- HTML之特殊字符标签

    上面图片内容简单了解一下,下面我们看一段代码: <!DOCTYPE html> <html lang="en"> <head> <meta ...

  5. POJ3277 线段树段更新,点询问+二分离散化+暴力

    题意:       x轴上有一些矩形,问你这些矩形覆盖的面积和是多少. 思路:       首先范围很大,n很小,果断离散化,然后我们就是求出任意区间的最大值作为当前区间的高,最后在算一遍答案就行了, ...

  6. hdu4642博弈(矩阵)

    题意:       给一个01矩阵,每次可以选择1的格子,选择之后以他为左上角的矩阵全都取反,两个人轮班取,不能取的人输. 思路:        博弈的题目,结论是右下角是0就输,1就赢,原因可以这么 ...

  7. UVA11375火柴(递推+大数)

    题意:       给你n根火柴,问你能组成多少种数字,比如3根可以组成1或者7,组成的数字中不能有前导0, 思路:       我们开一个数组,d[i]记录用i跟火柴可以组成多少种数字,则更新状态是 ...

  8. VS“无法查找或打开PDB文件”解决方法

    ``#运行时报错提示 "温度柱状图.exe"(Win32): 已加载"C:\Windows\SysWOW64\rpcrt4.dll".无法查找或打开 PDB 文 ...

  9. 【BUAA软工】团队任务拆解

    项目 内容 班级:北航2020春软件工程 博客园班级博客 作业:团队任务拆解及时间规划 团队任务拆解 Alpha阶段总体规划 初步完成产品功能规格说明书中的基础功能 目前阶段仅支持本地上传文件至当前N ...

  10. ssh-的搭建和使用

    ssh的作用 : 可实现远程客户端登录服务器并对服务器的文件进行操作 ssh服务器的安装 farsight@ubuntu:~$ sudo apt-get install openssh-server ...