Spark 详解

Spark 详解

参考书籍

《Spark 编程基础》(Scala版)
《Spark 快速大数据分析》
《Spark 高级数据分析》

Scala

变量:

val 变量名(:数据类型) = 初始值
var 变量名(:数据类型) = 初始值

val 声明的变量,在声明时必须被初始化,并且初始化后就不能再赋新的值;
var 声明的变量,是可变的,可以被多次赋值。

Scala提供一种类型推断机制(Type Inference),它会根据初始值自动推断变量的类型。
以下等效:
	var str = "Hello world"
	var str:String = "Hello world"

输入输出:

输入语句:引包(import io.stdIn._)
	readInt, readDouble, readByte, readShort, readFloat, readLong, readChar, readBoolean, readLine
输出语句:
	println(): 换行输出
	print(): 非换行输出
	printf(): Scala支持C语言风格字符串

	printf("I am %d years old and weight %.1f kg.", i, f)
	
	Scala提供字符串插值机制,以方便在字符串字面量中直接嵌入变量的值。
	println(s"$s : i = $i, f = $f")  //s插值字符串,不支持格式化
	println(f"$s : i = $i%-4d, f = $f%.1f")  //f插值字符串,支持在$变量后再跟格式化参数

读写文件:(import java.io.PrintWriter) (import scala.io.Source)

//写入文件
val outputFile = new PrintWriter("test.txt")
outputFile.println("Hello world")
outputFile.print("Spark is good")
outputFile.close

//使用String 类的 format方法或f插值字符串来实现数值类型的格式化写入
val i = 9
outputFile.print("%3d --> %d\n".format(i, i*i))
outputFile.println(f"$i%3d --> ${i*i}%d")  //与上句等效
outputFile.close

//文件读取
//最常用的是getLines方法,返回一个包含所有行的迭代器
val inputFile = Source.fromFile("test.txt")
for(line <- inputFile.getLines()) println(line)
inputFile.close()

控制结构

//if条件表达式
if(x > 0){
	println("This is")
}
上一篇:条款40: 明智而审慎地使用多重继承


下一篇:读取Properties的流方法