Scala中的类与对象

定义类

1
2
3
4
5
6
7
class Counter {
private var value = 0

//大括号和返回类型可以省略
def increment(): Unit = { value += 1}
def current(): Int = {value}
}
  • 字段没有 private 修饰的默认为 public
  • def来声明方法
  • Unitincrement()方法的返回类型
  • 方法的最后一条表达式就是返回值,不需要写return
阅读更多

Scala中的函数式编程

Scala是一门多范式编程语言,混合了 面向对象编程函数式编程 的风格。

在大数据处理中为什么要函数式编程?

函数式编程的一个重要特性就是值不可变性,这对于编写可扩展的并发程序而言可以带来巨大好处。因为它避免了对公共的可变状态进行同步访问控制的复杂问题。简单地说,我们完全不需要进行传统并发编程里面的同步、加锁等操作。

阅读更多

Spark SQL 和 DataFrame

RDD 和 DataFrame 的区别

RDD 是弹性分布式数据集,其本质是 Dataset。Dataset 可以从 JVM 对象中构建 (例如 rating 对象,即 javabean ),然后通过 map、flatMap、filter 等方法转换来操作。

为了更好地读写数据以及使用类似SQL语句一样简单地操作,Spark SQL 提供了 DataFrame (其前身是SchemaRDD)。

阅读更多

Scala 入门

Scala是一门现代的多范式编程语言,平滑地集成了 面向对象函数式语言 的特性,旨在以简练、优雅的方式来表达常用编程模式。

Scala运行于JVM上,并兼容现有的Java程序,Scala代码可以调用Java方法,访问Java字段,继承Java类和实现Java接口。

在面向对象方面,Scala是一门非常纯粹的面向对象编程语言,也就是说,在Scala中,每个值都是对象,每个操作都是方法调用。 在函数式方面,函数是一等公民,可以像操作其他数据类型那样操作函数。

vczh

阅读更多

Spark编程入门(二)RDD编程

RDD 简介

弹性分布式数据集(Resilient Distributed Dataset,RDD),是分布式内存的一个抽象概念,它提供了一种高度受限的内存模型。本质上,RDD是一个只读的分区记录集合。一个RDD可以分成多个分区,每个分区就是一个数据集片段。不同的分区可以保存在集群的不同节点上,从而可以进行并行计算。

阅读更多

Spark编程入门(一) QuickStart

Spark 基本概念

在实际应用中,大数据处理主要包括:

  • 复杂的批量数据处理(数十分钟 - 几小时)
  • 基于历史数据的交互式查询(数十秒 - 几分钟)
  • 基于实时流的数据处理 (数百毫秒 - 几秒)

Spark 的设计遵循“一个软件栈满足不同的应用场景”,有一套完整的生态系统。包括内存计算框架、SQL即时查询、实时流式计算、机器学习和图计算等。Spark可以部署在 YARN 资源管理器上,提供一站式的大数据解决方案。

阅读更多