1. Spark 2.0之前,Spark主要使用RDD(Resilient Distributed Dataset 弹性分布式数据集);
Spark 2.0之后,RDD被Dataset所取代,Dataset很像RDD,但是比RDD表现更好。建议使用Dataset。
2. 读取数据
- 从文件读取数据
val textFile = spark.read.textFile("README.md")
- 数据处理
textFile.count()
textFile.first()
- 将现有Dataset转换成一个新的Dataset,使用filter来返回一个现有Dataset的子集
val linesWithSpark = textFile.filter(line => line.contains("Spark"))
- 更多的方法
textFile.map(line => line.split(" ").size).reduce((a, b) => Math.max(a, b))
val wordCounts = textFile.flatMap(line => line.split(" ")).groupByKey(identity).count()
(flatMap将Dataset的lines转换成words)wordCounts.collect()