🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
Spark shell提供了一个简单方式去学习API,它也是一个交互式分析数据的强大工具。 你既可以使用Scala(运行在JVM之上,所以可以使用众多的Java库),也可以使用Python。运行Spark文件夹下的的命令: ~~~ ./bin/spark-shell ~~~ Spark最主要的一个抽象出来的概念就是分布式的数据集合, 也就是弹性分布式数据集Resilient Distributed Dataset (RDD). RDD可以从Hadoop InputFormats (比如HDFS文件)创建, 也可以通过其它RDD转换(transforming)得到。 让我们从Spark源代码文件夹下的README文件创建一个RDD: ~~~ scala> val textFile = sc.textFile("README.md") textFile: spark.RDD[String] = spark.MappedRDD@2ee9b6e3 ~~~ RDD包含[action](https://spark.apache.org/docs/latest/programming-guide.html#actions),可以返回数据, 也包含[transformation](https://spark.apache.org/docs/latest/programming-guide.html#transformations),返回新的RDD的指针。 先看一些action的例子: ~~~ scala> textFile.count() // 此RDD中的item的数量 res0: Long = 126 scala> textFile.first() // 此RDD第一个item res1: String = # Apache Spark ~~~ 现在再看一个转换的例子。我们使用`filter`返回一个新的RDD, 新的RDD是文件中item的一个子集。 ~~~ scala> val linesWithSpark = textFile.filter(line => line.contains("Spark")) linesWithSpark: spark.RDD[String] = spark.FilteredRDD@7dd4af09 ~~~ 将transformation和action串起来: ~~~ scala> textFile.filter(line => line.contains("Spark")).count() // How many lines contain "Spark"? res3: Long = 15 ~~~