随笔分类 - 大数据学习
参考学习。潭州学院
摘要:1、StreamingContext对象详解 l 初始化StreamingContext 方式一:从SparkConf对象中创建 从一个现有的SparkContext实例中创建 程序中的几点说明: appName参数是应用程序在集群UI上显示的名称。 master是Spark,Mesos或YARN集
阅读全文
摘要:1、Spark Streaming简介 Spark Streaming是核心Spark API的扩展,可实现可扩展、高吞吐量、可容错的实时数据流处理。数据可以从诸如Kafka,Flume,Kinesis或TCP套接字等众多来源获取,并且可以使用由高级函数(如map,reduce,join和windo
阅读全文
摘要:一:写出数据源 mysql中的数据作为数据源 先看看MySQL中的表 代码如下: 运行结果: 写出各种文件格式,.txt .json .csv .... 代码如下: 输出为文本格式如下: 输出为Json格式如下: 输出为CSV格式如下: 输出为parquet文件: Parquet是一个列格式而且用于
阅读全文
摘要:1、Spark SQL简介 Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。 为什么要学习Spark SQL? 我们已经学习了Hive,它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简
阅读全文
摘要:SparkRDD实现自定义排序实现Order接口, 原始方法:元组输出 部分代码如下: 方法一:自定义一个类, 实现Ordered自定义的排序 代码如下: 方法二:模式匹配方式进行排序 代码如下: 方法三:专门定义一个隐世类来排序 建议写成隐式类,应为可以将你需要的隐世装换全写在一个隐式类中,直接导
阅读全文
摘要:案例一:计算网页访问量前三名 源数据大致预览: 编写Scala代码: 运行结果: 案例二:求出每个学院 访问第一位的网址,分组 编写Scala代码: 运行结果: 案例三:加入自定义分区 按照学院分区,相同的学院分为一个结果文件 编写Scala代码: 运行结果: 案例四:Spark访问数据库 把分组排
阅读全文
摘要:1、RDD的缓存机制 RDD通过persist方法或cache方法可以将前面的计算结果缓存,但是并不是这两个方法被调用时立即缓存,而是触发后面的action时,该RDD将会被缓存在计算节点的内存中,并供后面重用。 通过查看源码发现cache最终也是调用了persist方法,默认的存储级别都是仅在内存
阅读全文
摘要:1)mapPartionWithIndex(func) 设置分区,并且查看每个分区中存放的元素 查看每个分区中元素 需要传递函数作为参数 val func = (index:Int,iter:Iterator[(Int)]) => {iter.toList.map(x => "partID:" +
阅读全文
摘要:1:什么是RDD? RDD(Resilient Distributed DataSet)是分布式数据集。RDD是Spark最基本的 数据的抽象。 scala中的集合。RDD相当于一个不可变、可分区、里面的元素可以并行计算的集合。 RDD特点:具有数据流模型的特点 自动容错 位置感知调度 可伸缩性 R
阅读全文
摘要:Spark框架学习 一:Spark概述 官网:http://spark.apache.org/ Apache Spark™是用于大规模数据处理的统一分析引擎。 为大数据处理而设计的快速通用的计算引擎。 Spark加州大学伯克利分校AMP实验室。不同于mapreduce的是一个Spark任务的中间 结
阅读全文
摘要:Spark使用底层通信框架AKKA 分布式 master Worker hadoop使用的是rpc 1)akka简介 写并发程序很难,AKKA解决spark这个问题。 akka构建在JVM平台上,是一种高并发、分布式、并且容错的应用工具包 akka用scala语言编写同时提供了scala和java的
阅读全文
摘要:1、什么是泛型类 和Java或者C++一样,类和特质可以带类型参数。在Scala中,使用方括号来定义类型参数 测试程序: 2、什么是泛型函数 函数和方法也可以带类型参数。和泛型类一样,我们需要把类型参数放在方法名之后。 注意:这里的ClassTag是必须的,表示运行时的一些信息,比如类型。 3、Up
阅读全文
摘要:20:Scala面向对象 Scala的面向对象 我们要封装数据,定义模板等操作,所以我们需要面向对象。 1)scala中的单例对象 在scala当中,是没有static的,scala给我们提供了单例模式的实现方法。就是使用 关键字object。 static在java中修饰属性和方法,目的是直接类名
阅读全文
摘要:八:Set 1 无序的,不重复的集合 Set不可变的集合 无序 2 HashSet可变的集合 val c = collection.mutable.HashSet(2,3,4) remove 删除元素 -= 删除元素 ++ 集合相加 ++= 相加并赋值 九:Map 1:不可变 Map: val m
阅读全文
摘要:*4 集合的高级函数(重点) count 统计个数 记得要加条件不然要报错 filter 过滤 条件:x>4 sortBy 排序 正序: 逆序(记得加个空格): sortWwith 排序 这里参数x1,x2可以理解为上一个元素和下一个元素进行比较,都是同一个集合中出来的元素进行对比。 grouped
阅读全文
摘要:六:scala数组 1 数组定义: 数组定义1: var arr = new Array[String](3) String:存储的元素类型 3:存储3个元素 添加元素: arr(1) = "dawn" 数组定义2: val arr1 = Array[Int](1,2,3,4,5,6) 改变内容:a
阅读全文
摘要:五:scala函数 1函数创建方式 方式1:方法转换为函数 方式:方法名 _ res6: (Int, Int) => Int = <function2> <function2> 代表一个函数,并且有两个参数。 (Int, Int) 代表参数列表 Int 代表返回值类型 => 代表函数 方式2 定义函
阅读全文
摘要:一:scala简介 官网:https://www.scala-lang.org/ Scala语言很强大,集成了面向对象和函数式编程的特点。 运行在JVM(jdk)。 大数据中为什么学习scala? spark是scala语言编写。 python写spark 挺好的 java写spark 很糟糕(代码
阅读全文
摘要:案例一:统计网站访问量(实时统计) 实时流式计算框架:storm 1)spout 数据源,接入数据源 本地文件如下 编写spout程序: 2)splitbolt 业务逻辑处理 切分数据 拿到网址 3)bolt 累加次数求和 4)Driver 使用字段分组 运行结果如下: 总共190条数据。统计完成之
阅读全文
摘要:五:storm-wordcount 实时版开发 1:编写Spout 2:编写分词bolt 3:编写计数bolt 4:编写driver驱动类 六:storm-wordcount 提交到集群上运行 1:打包程序到Linux上 2:提交任务 3:在Storm UI上看任务执行情况 七:分组策略 使用上面w
阅读全文

浙公网安备 33010602011771号