spark配置(2)
进入交互界面
./bin/spark-shell
创建textFile,从本地文件,
val textFile = sc.textFile("file:///usr/local/spark/README.md")
从HDFS读取,
scala> val textFile = sc.textFile("input/yarn-site.xml")
scala> textFile.count() // RDD 中的 item 数量,对于文本文件,就是总行数
scala> textFile.first() // RDD 中的第一个 item,对于文本文件,就是第一行内容
scala> val linesWithSpark = textFile.filter(line => line.contains("Spark"))
scala> linesWithSpark.count()
textFile.filter(line => line.contains("Spark")).count()
RDD的更多
textFile.map(line => line.split(" ").size).reduce((a, b) => if (a > b) a else b)
将每一行内容 map 为一个整数,这将创建一个新的 RDD,并在这个 RDD 中执行 reduce 操作,找到最大的数。
map()、reduce() 中的参数是 Scala 的函数字面量(function literals,也称为闭包 closures),并且可以使用语言特征或 Scala/Java 的库。
例如,通过使用 Math.max() 函数(需要导入 Java 的 Math 库),可以使上述代码更容易理解:
import java.lang.Math
textFile.map(line => line.split(" ").size).reduce((a, b) => Math.max(a, b))
wordcount
val wordCounts = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)
wordCounts.collect()
参考/转载:http://www.powerxing.com/spark-quick-start-guide/