在上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. AdaBoostClassifier参数

    [AdaBoostClassifier] Adaboost-参数: base_estimator:基分类器,默认是决策树,在该分类器基础上进行boosting,理论上可以是任意一个分类器,但是如果是其 ...

  2. xPath,beautifulsoup和pyquery

    一.XPath from lxml import etree html = etree.parse('html源代码',etree.HTMLPaser()) 1.节点的获取 a.html.xpath( ...

  3. 另类的曲线方式定时Start up/Shut down VM 的解决方案

    一,引言 最近看到一位小兄弟在为了做 Azure 云虚拟机的自动关机开启 在群里求助,最后也不知道结果咋样了. 至于他提到的利用 Automation Account 我是没有接触过,并且也没有看资料 ...

  4. mysql 随机选取一条符合条件的记录

    暂时记录下: SELECT *  FROM `kw_user` AS t1 JOIN ( SELECT ROUND( RAND( ) * ( ( SELECT MAX( id ) FROM `kw_u ...

  5. OD调试程序常用断点大全

    常用断点  拦截窗口:  bp CreateWindow 创建窗口  bp CreateWindowEx(A) 创建窗口  bp ShowWindow 显示窗口  bp UpdateWindow 更新 ...

  6. NetBIOS名称欺骗和LLMNR欺骗

    目录 LLMNR和NetBios 攻击原理 Responder 攻击过程 LLMNR和NetBios 什么是LLMNR和NetBIOS名称服务器广播? 当DNS名称服务器请求失败时,Microsoft ...

  7. CVE-2010-3333:Microsoft RTF 栈溢出漏洞调试分析

    0x01 前言 CVE-2010-3333 漏洞是一个栈溢出漏洞,该漏洞是由于 Microsoft文档在处理 RTF 数据的对数据解析处理错误,在进行内存操作时没有对操作的数据进行长度限制,导致存在内 ...

  8. CMS Joomla SQL注入漏洞练习(CVE-2017-8917 )

    0x01 原理 1.Joomla是内容管理的网站程序,也就是CMS.漏洞原理是com_fields组件,对请求数据过滤不严谨,从而导致sql注入.这个就是有问题的代码,可以看出sql根本没有过滤,通过 ...

  9. Python视频压缩

    html, body { font-family: "SF UI Display", ".PingFang SC", "PingFang SC&quo ...

  10. Day003 类型转换

    类型转换 由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换 ​ 低------------------------------------------------------> ...