06 2019 档案
摘要:一、transformation和action入门 1、介绍 Spark支持两种RDD操作:transformation和action。transformation操作会针对已有的RDD创建一个新的RDD;而action则主要是对RDD进行最后的操作,比如遍历、reduce、 保存到文件等,并可以返
阅读全文
摘要:一、创建RDD 1、创建RDD 进行Spark核心编程时,首先要做的第一件事,就是创建一个初始的RDD。该RDD中,通常就代表和包含了Spark应用程序的输入源数据。然后在创建了初始的RDD之后,才可以通过Spark Core提供的transformation算子,对该RDD进行转换,来获取其他的R
阅读全文
摘要:一、wordcount程序原理深度剖析二、Spark架构原理1、
阅读全文
摘要:一、用Java开发wordcount程序 1、开发环境JDK1.6 1.1 配置maven环境 1.2 如何进行本地测试 1.3 如何使用spark-submit提交到spark集群进行执行(spark-submit常用参数说明,spark-submit其实就类似于hadoop的hadoop jar
阅读全文
摘要:一、基本工作原理 1、特点 二、RDD 1、 三、spark编程 1、
阅读全文
摘要:一、Linux基础环境准备系统:centos6.5 三台1、系统安装2、关闭防火墙、selinux3、修改主机名并修改hosts文件4、配置ssh互信5、安装JDK1.7二、hadoop安装1、解压安装版本: hadoop2.4.1[root@s1 src]# pwd/usr/local/src[root@s1 src]# lsapache-hive-0.13.1-bin.tar.gz ...
阅读全文
摘要:1、介绍Scala的Actor类似于Java中的多线程编程。但是不同的是,Scala的Actor提供的模型与多线程有所不同。Scala的Actor尽可能地避免锁和共享状态,从而避免多线程并发时出现资源争用的情况,进而提升多线程编程的性能。此外,Scala Actor的这种模型还可以避免死锁等一系列传统多线程编程的问题。 Spark中使用的分布式多线程框架,是Akka。Akka也实现了类似Scala...
阅读全文
摘要:一、隐式转换1、介绍Scala提供的隐式转换和隐式参数功能,是非常有特色的功能。是Java等编程语言所没有的功能。它可以允许你手动指定,将某种类型的对象转换成其他类型的对象。通过这些功能,可以实现非常强大,而且特殊的功能。 Scala的隐式转换,其实最核心的就是定义隐式转换函数,即implicit conversion function。定义的隐式转换函数,只要在编写的程序内引入,就会被Scala...
阅读全文
摘要:一、类型参数11、介绍类型参数是什么?类型参数其实就类似于Java中的泛型。先说说Java中的泛型是什么,比如我们有List a = new ArrayList(),接着a.add(1),没问题,a.add("2"),然后我们a.get(1)== 2,对不对?肯定不对了,a.get(1)获取的其实是个String一"2",String---"2"怎么可能与一个Integer类型的2相等呢?所以Ja...
阅读全文
摘要:一、模式匹配11、介绍模式匹配是Scala中非常有特色,非常强大的一种功能。模式匹配,其实类似于Java中的swich case语法,即对一个值进行条件判断,然后针对不同的条件,进行不同的处理。但是Scala的模式匹配的功能比Java的swich case语法的功能要强大地多,Java的swich case语法只能对值进行匹配。但是Scala的模式匹配除了可以对值进行匹配之外,还可以对类型进行匹配...
阅读全文
摘要:一、集合操作11、Scala的集合体系结构// Scala中的集合体系主要包括:Iterable、Seq、Set、Map。其中Iterable是所有集合trait的根trai。这个结构与Java的集合体系非常相似。// Scala中的集合是分成可变和不可变两类集合的,其中可变集合就是说,集合的元素可以动态修改,而不可变集合的元素在初始化之后,就无法修改了。分别对应scala.collection....
阅读全文
摘要:一、函数式编程11、介绍Scala中的函数是Java中完全没有的概念。因为Java是完全面向对象的编程语言,没有任何面向过程编程语言的特性,因此Java中的一等公民是类和对象,而且只有方法的概念,即寄存和依赖于类和对象中的方法。Java中的方法是绝对不可能脱离类和对象独立存在的。而Scala是一门既面向对象,又面向过程的语言。因此在Scala中有非常好的面向对象的特性,可以使用Scala来基于面向...
阅读全文
摘要:一、Trait基础1、将trait作为接口使用// Scala中的Triat是一种特殊的概念// 首先我们可以将Trait作为接口来使用,此时的Triat就与Java中的接口非常类似// 在triat中可以定义抽象方法,就与抽象类中的抽象方法一样,只要不给出方法的具体实现即可// 类可以使用extends关键字继承trait,注意,这里不是implement,而是extends,在scala中没有...
阅读全文
摘要:一、继承1、extendsScala中,让子类继承父类,与Java一样,也是使用extends关键字 继承就代表,子类可以从父类继承父类的field和method;然后子类可以在自己内部放入父类所没有,子类特有的field和method;使用继承可以有效复用代码 子类可以覆盖父类的field和method;但是如果父类用final修饰,field和method用final修饰,则该类是无法被继承的...
阅读全文
摘要:一、对象1、objectobject,相当于class的单个实例,通常在里面放一些静态的field或者method,第一次调用object的方法时,就会执行object的constructor,也就是object内部不在method中的代码,但是object不能定义接受参数的constructor。object的constructor只会在其第一次被调用时执行一次,以后再次调用就不会再次执行con...
阅读全文
摘要:一、类1、定义类##定义并调用scala> :paste// Entering paste mode (ctrl-D to finish)class HelloWord { private var name = "Leo" def sayHello() {print("Hello, " + name)} def getName = name}// Exiting paste mode, no...
阅读全文
摘要:一、map1、创建map//创建一个不可变的Mapscala> val ages = Map("Leo" -> 30, "Jen" -> 25, "Jack" -> 23)ages: scala.collection.immutable.Map[String,Int] = Map(Leo -> 30, Jen -> 25, Jack -> 23)//创建一个可变的Mapscala> val age...
阅读全文
摘要:一、Array 、Array Buffer1、Array 在Scala中,Array代表的含义与Java中类似,也是长度不可改变的数组。此外,由于Scala与Java都是运行在JVM中,双方可以互相调用,因此Scala数组的底层实际上是Java数组。例如字符串数组在底层就是Java的String[],整数数组在底层就是JaVa的Int[]。数组初始化后,长度就固定下来了,而且元素全部根据其类型初始...
阅读全文