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")
}