在上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. JavaWeb请求与响应 Cookie&Session

    1.请求与响应 &Cookie&Session 1.1.请求与响应 HTTP协议 概念:英文全称:HyperText Transfer Protocol 中文全称:超文本传输协议   ...

  2. Josephus问题的queue解法

    问题描述 Josephus问题是一个非常古老的问题.它的范型描述为N个人(0到N-1)围成一圈报数,报道M的人会被剔除,直到最后一个人. 要求找出最后一个人的位置或这N个人被剔除的顺序. 解决思路 我 ...

  3. 洛谷P1424 小鱼的航程(改进版)

    题目背景 原来的题目太简单,现改进让小鱼周末也休息,请已经做过重做该题. 题目描述 有一只小鱼,它上午游泳150公里,下午游泳100公里,晚上和周末都休息(实行双休日),假设从周x(1<=x&l ...

  4. Android so加固的简单脱壳

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78077603 Android应用的so库文件的加固一直存在,也比较常见,特地花时间 ...

  5. PKI/CA与证书服务

    目录 PKI CA RA LDAP目录服务 CRL证书作废系统 数字证书 证书验证 证书撤销 证书更新 PKI系统的构成 PKI PKI(Public Key Infrastructure)公钥基础设 ...

  6. 10.PHP加密相关

    PHP加密函数 <?php    $str = 'This is an example!';    echo '1:'.$str.'<br>';    $crypttostr = c ...

  7. HTTP自定义Header-(SOCKET-TCP)

      HTTP自定义Header-TCP 前几天弄一些东西,需要在发送http请求的时候自定义http头,找了几个库用着很不爽.有的把Cookie直接干掉了,还自己在头里加了版权,最后终于忍不了了.在网 ...

  8. JSON和JSONP的区别及使用方法

    JSON(JavaScript Object Notation)和JSONP(JSON with Padding)虽然只有一个字母的差别,但其实他们根本不是一回事儿:JSON是一种数据交换格式,而JS ...

  9. pandas(10):数据增删改

    目录 一.对索引进行操作 1 操作索引值df.rename() 二.指定数据替换.修改df.replace() 三.特殊值--缺失值处理 四.新增行列 1 直接赋值添加新列 2 df.assign() ...

  10. 实时计算框架:Flink集群搭建与运行机制

    一.Flink概述 1.基础简介 Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算.Flink被设计在所有常见的集群环境中运行,以内存执行速度和任意规模来执行计算.主要特性包 ...