目录: 1. 业务2. 流程分析3. 数据读取5. 数据清洗6. 行政区信息 6.1. 需求介绍 6.2. 工具介绍 6.3. 具体实现7. 会话统计 导读 本项目是 SparkSQL 阶段的练习项目, 主要目的是夯实同学们对于 SparkSQL 的理解和使用 数据集 2013年纽约市出租车乘车记录 需求 统计出租车利用率, 到某个目的地后, 出租车等待下一个客人的间隔 1. 业务 导读 数据集介绍 业务场景介绍 和其它业务的关联 通过项目能学到什么 数据集结构 字段 示例 示意 hack_li…
8. Dataset (DataFrame) 的基础操作 8.1. 有类型操作 8.2. 无类型转换 8.5. Column 对象 9. 缺失值处理 10. 聚合 11. 连接 8. Dataset (DataFrame) 的基础操作 导读 这一章节主要目的是介绍 Dataset 的基础操作, 当然, DataFrame 就是 Dataset, 所以这些操作大部分也适用于 DataFrame 有类型的转换操作 无类型的转换操作 基础 Action 空值如何处理 统计操作 8.1. 有类型操作 分…
目标 SparkSQL 是什么 SparkSQL 如何使用 Table of Contents 1. SparkSQL 是什么 1.1. SparkSQL 的出现契机 1.2. SparkSQL 的适用场景 2. SparkSQL 初体验 2.3. RDD 版本的 WordCount 2.2. 命令式 API 的入门案例 2.2. SQL 版本 WordCount 3. [扩展] Catalyst 优化器 3.1. RDD 和 SparkSQL 运行时的区别 3.2. Catalyst 4. D…
4. 缓存 概要 缓存的意义 缓存相关的 API 缓存级别以及最佳实践 4.1. 缓存的意义 使用缓存的原因 - 多次使用 RDD 需求: 在日志文件中找到访问次数最少的 IP 和访问次数最多的 IP val conf = new SparkConf().setMaster("local[6]").setAppName("debug_string") val sc = new SparkContext(conf) val interimRDD = sc.textFi…
一.reduce和reduceByKey: 二.:RDD 的算子总结 RDD 的算子大部分都会生成一些专用的 RDD map, flatMap, filter 等算子会生成 MapPartitionsRDD coalesce, repartition 等算子会生成 CoalescedRDD 常见的 RDD 有两种类型 转换型的 RDD, Transformation 动作型的 RDD, Action 常见的 Transformation 类型的 RDD map flatMap filter gr…
一. 二.案例:详见代码.针对案例提出的6个问题: 假设要针对整个网站的历史数据进行处理, 量有 1T, 如何处理? 放在集群中, 利用集群多台计算机来并行处理 如何放在集群中运行? 简单来讲, 并行计算就是同时使用多个计算资源解决一个问题, 有如下四个要点 要解决的问题必须可以分解为多个可以并发计算的部分 每个部分要可以在不同处理器上被同时执行 需要一个共享内存的机制 需要一个总体上的协作机制来进行调度 如果放在集群中的话, 可能要对整个计算任务进行分解, 如何分解? 概述 对于 HDFS 中…
1. 回顾和展望 1.1. Spark 编程模型的进化过程 1.2. Spark 的 序列化 的进化过程 1.3. Spark Streaming 和 Structured Streaming 2. Structured Streaming 入门案例 2.1. 需求梳理 2.2. 代码实现 2.3. 运行和结果验证 3. Stuctured Streaming 的体系和结构 3.1. 无限扩展的表格 3.2. 体系结构 4. Source 4.1. 从 HDFS 中读取数据 4.2. 从 Kaf…
如何判断宽窄依赖: =================================== 6. Spark 底层逻辑 导读 从部署图了解 Spark 部署了什么, 有什么组件运行在集群中 通过对 WordCount 案例的解剖, 来理解执行逻辑计划的生成 通过对逻辑执行计划的细化, 理解如何生成物理计划   如无特殊说明, 以下部分均针对于 Spark Standalone 进行介绍 部署情况 在 Spark 部分的底层执行逻辑开始之前, 还是要先认识一下 Spark 的部署情况, 根据部署情…
Spark Streaming 导读 介绍 入门 原理 操作 Table of Contents 1. Spark Streaming 介绍 2. Spark Streaming 入门 2. 原理 3. 操作 1. Spark Streaming 介绍 导读 流式计算的场景 流式计算框架 Spark Streaming 的特点 新的场景 通过对现阶段一些常见的需求进行整理, 我们要问自己一个问题, 这些需求如何解决? 场景 解释 商品推荐 京东和淘宝这样的商城在购物车, 商品详情等地方都有商品推…
1.惰性加载: 在企业的大数据开发中,有时候会编写非常复杂的SQL语句,这些SQL语句可能有几百行甚至上千行.这些SQL语句,如果直接加载到JVM中,会有很大的内存开销.如何解决? 当有一些变量保存的数据较大时,但是不需要马上加载到JVM内存.可以使用惰性赋值来提高效率. 语法格式: lazy val/var 变量名 = 表达式 2.scala提供多种定义字符串的方式,将来我们可以根据需要来选择最方便的定义方式. 使用双引号 :   val/var 变量名 = “字符串” 使用插值表达式(有效避…
10.redis集群 1.redis集群的介绍 Redis 集群是一个提供在多个Redis节点之间共享数据的程序集. Redis 集群并不支持同时处理多个键的 Redis 命令,因为这需要在多个节点间移动数据,这样会降低redis集群的性能,在高负载的情况下可能会导致不可预料的错误. Redis 集群通过分区来提供一定程度的可用性,即使集群中有一部分节点失效或者无法进行通讯, 集群也可以继续处理命令请求. Redis 集群的优势: 1.缓存永不宕机:启动集群,永远让集群的一部分起作用.主节点失效…
8.redis的主从复制架构 在Redis中,用户可以通过执行SLAVEOF命令或者设置slaveof选项,让一个服务器去复制(replicate)另一个服务器,我们称呼被复制的服务器为主服务器(master),而对主服务器进行复制的服务器则被称为从服务器(slave),如图所示. 使用主从复制这种模式,实现node01作为主节点,node02与node03作为从节点,并且将node01所有的数据全部都同步到node02与node03服务器 第一步:node02与node03服务器安装redis…
7.redis的持久化 由于redis是一个内存数据库,所有的数据都是保存在内存当中的,内存当中的数据极易丢失,所以redis的数据持久化就显得尤为重要,在redis当中,提供了两种数据持久化的方式,分别为RDB以及AOF,且redis默认开启的数据持久化方式为RDB方式,接下来我们就分别来看下两种方式的配置吧 1.RDB持久化方案介绍 RDB方案介绍 Redis会定期保存数据快照至一个rbd文件中,并在启动时自动加载rdb文件,恢复之前保存的数据.可以在配置文件中配置Redis进行快照保存的时…
第三步:redis的javaAPI操作 操作string类型数据 操作hash列表类型数据 操作list类型数据 操作set类型的数据 详见代码…
Redis课程教案 1. NoSQL数据库的发展历史简介 1.web系统的变迁历史 web1.0时代简介 基本上就是一些简单的静态页面的渲染,不会涉及到太多的复杂业务逻辑,功能简单单一,基本上服务器性能不会有太大压力 缺点:1.Service 越来越多,调用关系变复杂,前端搭建本地环境不再是一件简单的事.考虑团队协作,往往会考虑搭建集中式的开发服务器来解决.这种解决方案对编译型的后端开发来说也许还好,但对前端开发来说并不友好.天哪,我只是想调整下按钮样式,却要本地开发.代码上传.验证生效等好几个…
这一节主要来介绍TesorFlow的可视化工具TensorBoard,以及TensorFlow基础类型定义.函数操作,后面又介绍到了共享变量和图操作. 一 TesnorBoard可视化操作 TensorFlow提供了可视化操作工具TensorBoard.他可以将训练过程中的各种数据展示出来,包括标量,图片,音频,计算图,数据分布,直方图和嵌入式向量.可以通过网页来观察模型的结构和训练过程中各个参数的变化.TensorBoard不会自动把代码代码出来,其实它是一个日志展示系统,需要在session…
在我们使用TensorFlow的时候,有时候需要训练一个比较复杂的网络,比如后面的AlexNet,ResNet,GoogleNet等等,由于训练这些网络花费的时间比较长,因此我们需要保存模型的参数. 编程基础案例中主要讲解模型的保存和恢复,以及使用几个案例使我们更好的理解这一块内容. 一 保存和载入模型 1.保存模型 首先需要建立一个saver,然后在session中通过saver的save即可将模型保存起来,代码如下: ''' 1.保存模型 ''' ''' 这里是各种构建模型graph的操作,…
在第一节中我们已经介绍了一些TensorFlow的编程技巧;第一节,TensorFlow基本用法,但是内容过于偏少,对于TensorFlow的讲解并不多,这一节对之前的内容进行补充,并更加深入了解讲解TensorFlow. TesorFlow的命名来源于本身的运行原理.Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算.TensorFlow是张量从图像的一端流动到另一端的计算过程,这也是TensorFlow的编程模型. TensorFlow编程基础上主要介绍session…
开发环境:spark:2.2.0 工具:IDEA OS:Windows 数据文件: 001E8CB5AB11,ASUSTek,2018-07-12 14:00:57,2018-07-12 14:00:57,2018-07-12 14:00:57,未知,僵尸屏,0 0023242DDEB7,其他,2018-07-12 14:01:04,2018-07-12 14:01:04,2018-07-12 14:03:04,未知,僵尸屏,120 0026C5DC5555,其他,2018-07-12 13:5…
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78818917 一.Android so库文件的节表secion修复方案整理 1.简单粗暴的so加解密实现 https://bbs.pediy.com/thread-191649.htm             2. ELF section修复的一些思考 https://bbs.pediy.com/thread-192874.htm             3. 从零打造简单的SO…
摘 要:随着互联网的发展,网络媒介生态的变化正在悄然进行.一大批网络自媒体节目<罗辑思维><晓说><凯子曰>等进入大众视线,成为大众关注的新焦点,其中<罗辑思维>节目凭借其独有的特点脱颖而出.本文以“五W”模式为基础,分别探讨<罗辑思维>节目的传播主体.传播内容.传播渠道.传播对象及传播效果方面的特色,希望为今后网络自媒体节目的发展提供有效的参考价值. 关键词:网络脱口秀节目:罗辑思维:传播特色 自2012年3月高晓松知识类脱口秀节目<晓说…
<script src="jquery.js" type="text/javascript"></script> <script src="jquery.treeTable.js" type="text/javascript"></script><link href="default/jquery.treeTable.css" rel="sty…
Bootstrap项目实战--案例 html <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no&quo…
定义计算器的类 用注解的方式去测试计算器类里面 所有的方法 想验证哪个方法 就在方法的上面加上注解@check 执行TestCheck验证方法 控制台的输出 根目录生成了一个 bug.txt文件 重写TestCheck这个类 invoke会出异常,把这个异常抛出去 放到try catch里面去捕获异常 获取的是不带包名的简短的类名 运行程序 生成了文件 故意出错,这里空指针异常 总结…
student定义sleep方法 用反射+配置文件 定义配置文件 src下new file.新建 加载配置文件.Properties里面有一个load方法,可以加载.properties结尾的配置文件 加载到内存中 获取字节码文件对应的类的加载器,用这个类加载器加载到内存 这样就有了ClassLoader ClassLoader下面以偶getResource的方法是获取资源的路径 getResourceAsStream获取资源对应的字节流 这样就返回了字节流 把字节流传到load方法里面,就完成…
之前的运行数据被清除了,只能再运行一次,对比一下sparkSQL语句的影响 纯SQL的时间 对应时间表 th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;-moz-border-radius-…
一.搭建准备环境 在搭建Hive和SparkSql进行整合之前,首先需要搭建完成HDFS和Spark相关环境 这里使用Hive和Spark进行整合的目的主要是: 1.使用Hive对SparkSql中产生的表或者库的元数据进行管理(因为SparkSql没有提供相关的功能,官方提供的是和Hive的整合方案,官方之所以不在独立去开发一个元数据管理模块是为了防止重复造轮子),所以直接复用了Hive的元数据管理这一套内容 2.单独使用Hive的话速度太慢,所以在前期就打算切换到Spark作为计算引擎,然后…
我们这一节会先去分析下monkeyrunner是如何对参数进行处理的,我们跳转到MonkeyRunnerOptions这个类里面的processOptions这个方法: 93   public static MonkeyRunnerOptions processOptions(String[] args) 94   { 95     int index = 0; 96 97     String hostname = DEFAULT_MONKEY_SERVER_ADDRESS; 98     F…
第81节:Java中的数组 本节介绍数组的基本概念,数据就是一种数据结构,可以用来存储多个数据,每个数组中可以存放相同类型的数据.比如,在学校,我们是一个班,这里的班级中每个同学都是这个班级数组中的元素,都是同样的类型为学生,对应的学号就是我们的索引,但是在现实中的学号一般都是从1开始的,而在Java中的数组索引是从0开始的. 定义一个数组为方括([]),通过数组元素的索引(或下标,角标)来访问数组中的元素,同时可以为数组赋值和取出数组的元素值. 问: 在Java中为什么要有数组呢? 答: 数组…
出自:http://hedengcheng.com/?p=209 两表join的multi update语句,执行结果与预计不一致的分析过程 — multi update结论在实际应用中,不要轻易使用multi update更新,根据join的不同顺序,更新的结果也会发生变化,multi update不是一个有稳定输出的语句,并且输出结果很难理解,最好不用! 整个测试的准备与multi update的处理流程分析,请见下 — T1表DROP TABLE IF EXISTS `t1`; CREAT…