自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

原创 Hive案例之股票分析

Hive案例之股票分析需求​ 中国的股票市场日益成熟。最近受美国股票波动冲击,股票也波动比较厉害。请按如下交易明细进行分析。​ 如下数据保存在gupiao.txt中:序号 股票号 股票名称 行业 交易平台 交易额(万)手1,600462,九有股份,5G通讯,同花顺,101602,600695,绿庭投资,5G通讯,同花顺,101303,2575,群兴玩具,5G通讯,同花顺,101104,300392,腾信股份,5G通讯,同花顺,100805,300464,星徽精密,医疗,同花顺,10080

2020-05-12 00:12:41 2570

原创 Hive案例之成绩统计

Hive案例之成绩统计需求​ 创建classrecord.txt文件。其中数据如下:序号 班级 总分1 1603A 95 2 1603B 853 1603C 75 4 1603D 96 5 1604F 94 6 1604E 95 7 1604K 91 8 1604G 89 9 1501A 79 10 1502A 69 11 1503A 59 12 1504A 89 13 1701A 99 14 1702A 100 15 1703A 65创建Hive分区表表名

2020-05-11 23:35:49 2479

原创 MapReduce案例之ReduceJoin

MapReduce案例之ReduceJoin需求​ 如下两个文件order.txt是用户的订单信息order001,u001order002,u001order003,u005order004,u002order005,u003order006,u004user.txt是基本用户信息u001,senge,18,angelababyu002,laozhao,48,ruhuau003,xiaoxu,16,chungeu004,laoyang,28,zenggeu005,n

2020-05-11 23:34:56 353

原创 一口气读完scala

横空出世  天下武功,唯快不破。在大数据时代下,能够进行快速地数据处理与分析已成为迫切需求。现如今,Spark、Kafka等基于Scala语言实现的框架在大数据生态圈内占有举足轻重的地位,它们在一定程度上引领着大数据最前沿技术方向。  另外Akka、Gearpump等基于Scala语言实现的框架在大数据生态圈内也备受关注,工业实践已经证明了Scala语言的强大。这使Scala语言近一两...

2018-09-10 09:03:01 733 1

原创 scala并发编程Actor(二十四)

scala 2.10.x版本及之前使用的是内置的Actor。scala 2.11.x版本后将Akka作为并发编程实现。Akka也实现了类似scala Actor的模型,核心概念也是Actor。scala的Actor类似于Java中的多线程编程,但却有所不同。scala中的Actor尽可能地避免锁和共享状态,避免多线程并发时出现资源争用的情况,进而提升多线程编程的性能。本文主要内容有概述、实现步骤、方法操作、WordCount案例。

2018-09-10 09:00:11 299

原创 scala隐式转换(二十三)

scala隐式转换分为隐式方法、隐式参数、隐式类及隐式对象。隐式方法:方法命名:文件名为源文件名2目标文件名,例如:file2RichFile定义隐式转换的方法名。隐式参数:在参数前添加implicit关键字的参数。隐式类:在class关键字前带有implicit关键字的类。隐式对象:在object关键字前带有implicit关键字的伴生对象。

2018-09-10 08:57:21 194

原创 提取器Extractor(二十一)

Scala 提取器是一个带有unapply方法的对象。unapply方法算是apply方法的反向操作:unapply接受一个对象,然后从对象中提取值。编译器在实例化对象时会调用 apply 方法。在提取器对象中使用match 语句是,unapply 将自动执行。本文主要内容有简介、简单实例、提取器中使用模式匹配。

2018-09-10 08:44:37 695

原创 scala泛型(二十二)

scala中可以使用泛型来修饰类、特质和函数,这样的类、特质和函数可用于操作多种类型数据。比如,Array[T]可以存放指定类型T的数据。本文主要内容有简介、泛型修饰的类、泛型修饰的函数、泛型界定(上边界、下边界、视图边界、上下文边界)。

2018-09-10 08:44:21 244

原创 模式匹配(二十)

Scala 提供了强大的模式匹配机制,应用非常广泛。一个模式匹配包含了一系列备选项,每个都开始于关键字 case。每个备选项都包含了一个模式及一到多个表达式。箭头符号 => 隔开了模式和表达式。本文主要内容有简介、模式匹配入门、模式类型、for控制结构中的模式匹配、Option类型模式匹配。

2018-09-09 09:37:47 183

原创 Case Class(十九)

Case Classs是样例类,能够被优化以用于模式匹配。构造器中的参数如果不被声明为var的话,默认是val类型。自动创建伴生对象,实现apply方法,可以不直接显示地new对象。伴生对象实现unapply方法,从而可以将case class应用于模式匹配。实现toString、hashCode、copy、equals方法。本文主要内容有:简介、简单实例、常用方法、多参数的case class、sealed case class。

2018-09-09 09:34:06 377

原创 IO流(十八)

在Scala中,I/O操作是调用java中的I/O类或者通过对java中的I/O类进行相应的封装来实现的。相比于java语言中的I/O类,scala语言中的I/O相关类非常少,而这其中最常用的只有Source这个类。Scala进行文件写操作,直接用的都是java中的I/O类。scala中读文件可以直接使用java中的I/O类,也可以用scala中的Source对象。scala中的网络I/O操作可以通过Source对象中的fromURL方法来实现,也可以使用原生的JAVA网络I/O操作进行。

2018-09-09 09:29:39 164

原创 正则表达式(十七)

简介  在程序开发中,经常会碰到需要匹配、查找、替换、判断字符串,如果用纯编码方式解决的话,难度较大,而且很浪费时间,通过正则表达式可以解决这些问题。  正则表达式并不只属于某一门程序语言。在众多的编程语言当中,包括JAVA、Perl、PHP、Python、JavaScript和JScript,都无一例外内生地支持正则表达式处理。Scala语言同样支持正则表达式。scala可以直接通过Ja...

2018-09-09 09:26:15 322

原创 特质trait(十六)

scala和java语言一样,采用了很强的限制策略,避免了多种继承的问题。在java语言中,只允许继承一个超类,该类可以实现多个接口,但java接口有其自身的局限性:接口中只能包括抽象方法,不能包含字段、具体方法。Scala语言利用Trait解决了该问题,在scala的trait中,它不但可以包括抽象方法还可以包含字段和具体方法。本文主要内容有简介、简单实例、多种使用方式、构造顺序。

2018-09-09 09:20:49 254

原创 类和对象(十五)

类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。Scala中的类不声明为public,一个Scala源文件中可以有多个类。抽象类是一种不能被实例化的类,抽象类中包括了若干不能完整定义的方法,这些方法由子类去扩展定义自己的实现。在Scala中,是没有static的,但是提供了单例模式的实现方法,那就是使用关键字object。

2018-09-09 09:16:49 177

原创 高阶函数(十四)

高阶函数(Higher-Order Function)就是操作其他函数的函数。Scala 中允许使用高阶函数, 高阶函数可以使用其他函数作为参数,或者使用函数作为输出结果。本文主要内容有简介、简单实例(函数参数、函数作为返回值)、常用高阶函数(map、flatMap、filter、reduce、fold)、函数柯里化、部分应用函数。

2018-09-09 09:12:18 214

原创 函数与闭包(十三)

Scala 有方法与函数,二者在语义上的区别很小。Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话来说在类中定义的函数即是方法。我们这里会统称为函数。Scala 中的函数是一个继承了 Trait类的对象。函数定义由一个 def 关键字开始,紧接着是可选的参数列表,一个冒号 : 和方法的返回类型,一个等号 = ,最后是方法的主体。本文主要内容有简介、基本函数、函数传名调用、函数指定参数名、可变参数、默认参数值、匿名函数、闭包。

2018-09-09 09:06:43 360

原创 集合类之Map(十二)

Map(映射)也叫哈希表(Hash tables),是一种可迭代的键值对(key/value)结构。所有的值都可以通过键来获取。Map中的键都是唯一的。Map有两种类型:可变与不可变。区别在于可变对象可以修改,而不可变对象不可以。默认情况下 Scala 使用不可变 Map。如果使用可变集合,需要显式地引入 import scala.collection.mutable.Map 类。本文主要内容有简介、简单实例、常见操作。

2018-09-09 09:02:40 257

原创 集合类之Set(十一)

Scala Set是没有重复的对象集合,所有的元素都是唯一的。分为不可变和可变两类。默认情况下,Scala 使用的是不可变集合(默认引用 scala.collection.immutable.Set),如果想使用可变集合,需引用 scala.collection.mutable.Set 包。本文主要内容有简介、简单实例、Set类型、常见操作。

2018-09-09 09:01:22 186

原创 集合类之元组(十)

与列表一样,元组也是不可变的,但与列表不同的是元组可以包含不同类型的元素。元组的值是通过将单个的值包含在圆括号中构成的。元组的实际类型取决于它的元素的类型。目前 Scala 支持的元组最大长度为 22。本文主要内容有简介、常见操作、遍历操作。

2018-09-08 22:14:48 183

原创 集合类之List(九)

Scala 列表类似于数组,它们所有元素的类型都相同,但是它们也有所不同:列表是不可变的,值一旦被定义了就不能改变;其次,列表具有递归的结构(也就是链接表结构)而数组不是。构造列表的两个基本单位是Nil和::。Nil可以表示一个空列表。本文主要内容有简介、组成部分、常用操作、伴生对象方法、遍历操作、列表缓存(ListBuffer)。

2018-09-08 22:08:56 270

原创 集合之字符串(八)

在 Scala 中,字符串的类型实际上是 Java String,它本身没有 String 类。String 是一个不可变的对象,所以该对象不可被修改。这就意味着你如果修改字符串就会产生一个新的字符串对象。String在操作时可以被隐式转换成StringOps对象,通过StringOps对象给字符串添加了上百种操作。本文主要内容有简介、创建字符串、StringBuilder、简单实例。

2018-09-08 21:50:34 171

原创 集合类之数组(七)

Scala 语言中提供的数组是用来存储固定大小的同类型元素。声明数组是声明一个就像numbers这样的变量,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来表示一个个单独的变量。数组中某个指定的元素是通过索引来访问的。数组的第一个元素索引为0,最后一个元素的索引为元素总数减1。本文主要内容有简介、声明数组、简单实例(定长数组Array、变长数组ArrayBuffer、数组遍历、数组转换、常用运算、多维数组)。

2018-09-08 21:45:35 262

原创 集合类概述(六)

scala中的集合分为两种,一种是可变的集合,另一种是不可变的集合。可变的集合可以在原集合上进行添加、更新及删除元素。不可变集合一旦被创建便不能被改变,添加、更新及删除操作返回的是新的集合,老集合保持不变。在scala中,默认使用的都是immutable集合。如果要使用mutable集合,需要在程序中引入。本文主要内容有简介、集合类层次结构、可变集合与不可变集合对应关系。

2018-09-08 19:42:59 193

原创 异常处理(五)

scala的方法可以通过抛出异常的方法的方式来终止相关代码的运行,不必通过返回值。Scala 抛出异常的方法和 Java一样,使用 throw 方法,例如,抛出一个新的参数异常:throw new IllegalArgumentException。异常捕捉的机制与其他语言中一样,如果有异常发生,catch字句是按次序捕捉的。因此,在catch字句中,越具体的异常越要靠前,越普遍的异常越靠后。如果抛出的异常不在catch字句中,该异常则无法处理,会被升级到调用者处。

2018-09-08 19:38:33 194

原创 程序控制语句(四)

Scala中的程序控制语句主要分为IF...ELSE语句、循环语句及Break语句。Scala IF...ELSE 语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。循环语句允许多次执行一个语句或语句组,用于需要重复调用某代码块的场景。Scala 语言中默认没有 break 语句,但是在 Scala 2.8 版本后可以使用另外一种方式来实现 break 语句。当在循环中使用 break 语句,在执行到该语句时,就会中断循环并执行循环体之后的代码块。

2018-09-08 19:36:20 240

原创 包和引入(三)

Scala中的包同java中的包,Scala中的包主要用于大型工程代码的组织同时也解决命名冲突的问题。Scala中的包与java有着诸多的相似之处,但Scala语言中的包更加灵活。Scala 访问修饰符分别有:private,protected,public。如果没有指定访问修饰符符,默认情况下,Scala 对象的访问级别都是 public。Scala 中的 private 限定符,比 Java 更严格,在嵌套类情况下,外层类甚至不能访问被嵌套类的私有成员。

2018-09-08 19:32:28 214

原创 数据类型(二)

Scala的基本数据类型与Java中的基本数据类型是一一对应的,不同的是Scala的基本数据类型头字母必须大写。本文主要讲解简介、类型变量定义(整型、浮点型、字符型、字符串、布尔)、类型操作(算术运算、关系运算、逻辑运算、位运算、对象比较)、运算符优先级。

2018-09-08 19:29:42 211

原创 初识scala(一)

Scala(Scala Language的简称)语言是一种能够运行于JVM和.Net平台之上的通用编程语言,既可用于大规模应用程序开发,也可用于脚本编程。本文主要讲解scala简介、特性、编程方式、基本语法、关键字、注释及变量。

2018-09-08 19:24:28 381

原创 spark sql之读写数据(十二)

Spark SQL支持多种结构化数据源,轻松从各种数据源中读取Row对象。这些数据源包括Parquet、JSON、Hive表及关系型数据库等。当只使用一部分字段时,Spark SQL可以智能地只扫描这些字段,而不会像hadoopFile方法一样简单粗暴地扫描全部数据。SparkSQL之读写数据主要内容有:Parquet、JSON、Hive表、JDBC连接关系型数据库。

2018-08-27 18:15:55 783

原创 spark sql之RDD转换DataSet(十一)

简介  Spark SQL提供了两种方式用于将RDD转换为Dataset。 - 使用反射机制推断RDD的数据结构  当spark应用可以推断RDD数据结构时,可使用这种方式。这种基于反射的方法可以使代码更简洁有效。通过编程接口构造一个数据结构,然后映射到RDD上  当spark应用无法推断RDD数据结构时,可使用这种方式。反射方式scala// For...

2018-08-27 16:48:56 752

原创 spark sql之快速入门(十)

spark sql快速入门主要内容有:Spark SQL前世今生(Hive&Shark、Shark&SparkSQL)、简介(SQL和DataFrame/DataSet)、DataFrame与DataSet创建及操作、SQL操作。

2018-08-27 16:10:13 175

原创 spark core之共享变量(九)

简介  spark执行操作时,可以使用驱动器程序Driver中定义的变量,但有时这种默认的使用方式却并不理想。集群中运行的每个任务都会连接驱动器获取变量。如果获取的变量比较大,执行效率会非常低下。每个任务都会得到这些变量的一份新的副本,更新这些副本的值不会影响驱动器中的对应变量。如果驱动器需要获取变量的结果值,这种方式是不可行的。  spark为了解决这两个问题,提供了两种类型的...

2018-08-26 23:18:51 210

原创 spark运行模式(三)

spark运行模式包括:本地模式、本地集群模式、standalone模式、yarn模式及mesos模式。

2018-08-25 23:36:56 514 1

原创 spark基本概念(二)

spark基本概念主要有:Application、Job、Stage、Task、ClusterManager、Executor、Driver、DAGScheduler、TaskScheduler

2018-08-25 23:35:46 214

原创 spark简介(一)

spark是一个用于大规模数据处理的统一计算引擎。适用于各种各样原先需要多种不同的分布式平台处理的场景,包括批处理、迭代计算、交互式查询、流处理。通过统一的框架将各种处理流程整合到一起。本文主要内容有:spark特性、spark生态栈、spark用户及用途、spark简史

2018-08-25 23:27:39 1780 1

原创 spark core之读写数据(八)

spark支持多种数据源,从总体来分分为两大部分:文件系统和数据库。 本文主要内容有:文件系统支持的存储格式(普通文本文件、JSON、CSV、SequenceFile)、数据库(JDBC连接、HBase、ElasticSearch)。

2018-08-25 20:34:53 828

原创 spark core之数据分区(七)

spark最重要的特性就是对数据集在各个节点的分区进行控制。控制数据分布可以减少网络开销,极大地提升整体性能。 本文主要内容有:分区器(HashPartitioner、RangePartitioner)、影响分区的算子操作、repartition和partitionBy的区别、repartition和coalesce的区别、实例分析。

2018-08-23 22:48:36 292

原创 spark core之键值对操作(六)

键值对RDD(pair RDD)是spark中许多操作所需要的常见数据类型,通常用来进行聚合计算。 本文主要内容有:创建Pair RDD、Pair RDD转化操作(聚合、分组、连接、排序)、Pair RDD行动操作。

2018-08-23 22:43:03 250

原创 spark core之RDD编程(五)

spark提供了对数据的核心抽象——弹性分布式数据集(Resilient Distributed Dataset,简称RDD)。RDD是一个分布式的数据集合,数据可以跨越集群中的多个机器节点,被分区并行执行。   本文内容有:五大特性、创建RDD(并行化集合、读取外部数据源)、RDD操作(转化操作、行动操作、缓存)、容错机制(Lineage、Checkpoint)

2018-08-23 22:36:43 167

原创 spark快速入门(四)

spark框架是用scala写的,运行在Java虚拟机(JVM)上。支持Python、Java、Scala或R多种语言编写客户端应用。 本文主要内容有:下载Spark、解压Spark、Spark主要目录结构、运行案例及交互式Shell、使用spark shell进行交互式分析、独立应用。

2018-08-23 22:31:04 351

黑客帝国数字雨

黑客帝国之数字雨是用VC编写的一个小程序!

2011-09-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除