spark shell的學習_Spark

來源:互聯網
上載者:User

Spark的互動式指令碼是一種學習API的簡單途徑,也是分析資料集互動的有力工具。

Spark抽象的分布式叢集空間叫做Resilient Distributed Dataset (RDD)彈性資料集。

其中,RDD有兩種建立方式:

(1)、從Hadoop的檔案系統輸入(例如HDFS);

(2)、有其他已存在的RDD轉換得到新的RDD;

下面進行簡單的測試:


1. 進入SPARK_HOME/bin下運行命令:

$./spark-shell

2. 利用HDFS上的一個文字檔建立一個新RDD:

scala> var textFile = sc.textFile("hdfs://localhost:50040/input/WordCount/text1");
textFile: org.apache.spark.rdd.RDD[String] = MappedRDD[1] at textFile at <console>:12

3. RDD有兩種類型的操作 ,分別是A ction(返回values)和Transformations(返回一個新的RDD)

(1)Action相當於執行一個動作,會返回一個結果:

scala> textFile.count() // RDD中有多少行


輸出結果2:

14/11/11 22:59:07 INFO spark.SparkContext: Job finished: count at <console>:15, took 5.654325469 sres1: Long = 2

scala> textFile.first() // RDD第一行的內容
結果輸出:

14/11/11 23:01:25 INFO spark.SparkContext: Job finished: first at <console>:15, took 0.049004829 sres3: String = hello world

(2)Transformation相當於一個轉換,會將一個RDD轉換,並返回一個新的RDD:

scala> textFile.filter(line => line.contains("hello")).count() // 有多少行含有hello
結果輸出:

14/11/11 23:06:33 INFO spark.SparkContext: Job finished: count at <console>:15, took 0.867975549 sres4: Long = 2

4. spark shell的WordCount

scala> val file = sc.textFile("hdfs://localhost:50040/input")scala>  val count = file.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_+_)scala> count.collect()

輸出結果:

14/11/11 23:11:46 INFO spark.SparkContext: Job finished: collect at <console>:17, took 1.624248037 sres5: Array[(String, Int)] = Array((hello,2), (world,1), (My,1), (is,1), (love,1), (I,1), (Urey,1), (hadoop,1), (name,1), (programming,1))

當然基於RDD還有很多複雜的操作,後面學習過程中遇到再總結出來。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.