国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

大數據課程K2——Spark的RDD彈性分布式數據集

這篇具有很好參考價值的文章主要介紹了大數據課程K2——Spark的RDD彈性分布式數據集。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

文章作者郵箱:yugongshiye@sina.cn? ? ? ? ? ? ? 地址:廣東惠州

?▲ 本章節(jié)目的

? 了解Spark的RDD結構;

??掌握Spark的RDD操作方法;

??掌握Spark的RDD常用變換方法、常用執(zhí)行方法;

一、Spark最核心的數據結構——RDD彈性分布式數據集

1. 概述

初學Spark時,把RDD看做是一個集合類型(類似于Array或List),用于存儲數據和操作數據,但RDD和普通集合的區(qū)別:

1. RDD有分區(qū)機制,可以分布式,并行的處理同一個RDD數據集,從而極大提高處理效率。分區(qū)數量由程序員自己定。

2. RDD由容錯機制。即數據丟失后,可以進行恢復。

大數據課程K2——Spark的RDD彈性分布式數據集,大數據,spark,分布式

2. 創(chuàng)建RDD方法

RDD就是帶有分區(qū)的集合類型

彈性分布式數據集(RDD),特點是可以并行操作,并且是容錯的。有兩種方法可以創(chuàng)建RDD:

1. 執(zhí)行Transform操作(變換操作)。即將一個普通集合(Array或List)轉變?yōu)橐粋€RDD。

例如:val r1 = sc.parallelize(a1,2)

或 val r1 = sc.makeRDD(List(1,2,3,4),2)

查看分區(qū)數量:r1.partitions.size。

查看分區(qū)數據:r1.glom.collect。

查看RDD整體數據:r1.collect。

2. 讀取外部存儲系統(tǒng)的數據集,如HDFS,HBase,或任何與Hadoop有關的數據源。

讀取Linux本地文件:val r4 = sc.textFile("file:home/1.txt",2)

讀取hds文件:val r5 = sc.textFile("hdfs://hadoop01:9000/1.txt",2)

3.?RDD入門示例

案例一:

并行化集合可以通過調用 Spark Context 的并行化方法被創(chuàng)建,這個方法是在驅動程序(Scala-Seq)中的現有集合上的。集合里的參數會被拷貝到可以并行執(zhí)行的分布式數據集里。如下例子就是如何創(chuàng)建一個包含了 1 到 5 的并行化集合。例如:

val data = Array(1, 2, 3, 4, 5)???????????????

val r1 = sc.parallelize(data)?????????

val r2 = sc.parallelize(data,2)??????

你可以這樣理解RDD:它是spark提供的一個特殊集合類。諸如普通的集合類型,如傳統(tǒng)的Array:(1,2,3,4,5)是一個整體,但轉換成RDD后,我們可以對數據進行Partition(分區(qū))處理,這樣做的目的就是為了分布式。

你可以讓這個RDD有兩個分區(qū),那么有可能是這個形式:RDD(1,2) (3,4)。

這樣設計的目的在于:可以進行分布式運算。

注:創(chuàng)建RDD的方式有多種,比如案例一中是基于一個基本的集合類型(Array)轉換而來,像parallelize這樣的方法還有很多,之后就會學到。此外,我們也可以在讀取數據集時就創(chuàng)建RDD。

案例二:

Spark能夠從任何基于Hadoop的存儲資源,創(chuàng)建分布式數據集。包括本地文件系統(tǒng)、HDFS、Cassandra、HBase、Amazon S3等等。Spark支持TEXT文件格式、SequenceFiles文件格式和其他Hadoop的輸入文件格式。

RDD的TEXT文件能夠通過SparkContext的方法創(chuàng)建。這個方法獲取一個文件的URI路徑(可以是本地路徑、或者是hdfs://,?s3n://等),然后當作一條數據集讀取其中內容。例如:

val distFile = sc.textFile("data.txt")

4. 查看RDD

scala>rdd.collect

收集rdd中的數據組成Array返回,此方法將會把分布式存儲的rdd中的數據集中到一臺機器中組建Array。

在生產環(huán)境下一定要慎用這個方法,容易內存溢出。

查看RDD的分區(qū)數量:

scala>rdd.partitions.size

查看RDD每個分區(qū)的元素:

scala>rdd.glom.collect

此方法會將每個分區(qū)的元素以Array形式返回。

5.?分區(qū)概念

在下圖所示, 一個RDD有item1~item25個數據,共5個分區(qū),分別在3臺機器上進行處理。

大數據課程K2——Spark的RDD彈性分布式數據集,大數據,spark,分布式

此外,spark并沒有原生的提供rdd的分區(qū)查看工具我們可以自己來寫一個。

案例三:

import org.apache.spark.rdd.RDD

import scala.reflect.ClassTag

object su {

def debug[T: ClassTag](rdd: RDD[T]) = {

rdd.mapPartitionsWithIndex((i: Int, iter: Iterator[T]) => {

val m = scala.collection.mutable.Map[Int, List[T]]()

var list = List[T]()

while (iter.hasNext) {

list = list :+ iter.next

}

m(i) = list

m.iterator

}).collect().foreach((x: Tuple2[Int, List[T]]) => {

val i = x._1

println(s"partition:[$i]")

x._2.foreach { println }

})

}

}

?二、RDD的操作

1. 概述

對于RDD的操作,總的來分有三種:

1. Transformation變化操作,特點是都是懶操作,調用后并不是馬上執(zhí)行,比如典型的textFile方法。此外,每當調用一次變化操作(懶操作),就會產生一個新的RDD。

2. Action執(zhí)行操作,特點是會觸發(fā)執(zhí)行。

3. Controller控制操作。

大數據課程K2——Spark的RDD彈性分布式數據集,大數據,spark,分布式

?大數據課程K2——Spark的RDD彈性分布式數據集,大數據,spark,分布式

?大數據課程K2——Spark的RDD彈性分布式數據集,大數據,spark,分布式

?大數據課程K2——Spark的RDD彈性分布式數據集,大數據,spark,分布式

?大數據課程K2——Spark的RDD彈性分布式數據集,大數據,spark,分布式

?2. 常用的變化方法(懶方法):

Transformation Meaning

map(func)

Return a new distributed dataset formed by passing each element of the source through a function?func.

返回一個新的分布式數據集,通過函數應用于RDD每一個元素,該方法的參數是一個函數

案例:

map 將函數應用到rdd的每個元素中

val rdd = sc.makeRDD(List(1,3,5,7,9))文章來源地址http://www.zghlxwxcb.cn/news/detail-659333.html

到了這里,關于大數據課程K2——Spark的RDD彈性分布式數據集的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 大數據開源框架環(huán)境搭建(七)——Spark完全分布式集群的安裝部署

    大數據開源框架環(huán)境搭建(七)——Spark完全分布式集群的安裝部署

    前言:七八九用于Spark的編程實驗 大數據開源框架之基于Spark的氣象數據處理與分析_木子一個Lee的博客-CSDN博客_spark輿情分析 目錄 實驗環(huán)境: 實驗步驟: 一、解壓 二、配置環(huán)境變量:? 三、修改配置文件? 1.修改spark-env.sh配置文件: 2.修改配置文件slaves: 3.分發(fā)配置文件:

    2024年02月11日
    瀏覽(94)
  • 云計算與大數據第16章 分布式內存計算平臺Spark習題

    1、Spark是Hadoop生態(tài)(? B? )組件的替代方案。 A. Hadoop? ???B. MapReduce ???????C. Yarn ????????????D.HDFS 2、以下(? D? )不是Spark的主要組件。 A. Driver?? ???B. SparkContext ??????C. ClusterManager D. ResourceManager 3、Spark中的Executor是(? A? )。 A.執(zhí)行器????? B.主節(jié)

    2024年02月14日
    瀏覽(449)
  • 分布式計算中的大數據處理:Hadoop與Spark的性能優(yōu)化

    大數據處理是現代計算機科學的一個重要領域,它涉及到處理海量數據的技術和方法。隨著互聯網的發(fā)展,數據的規(guī)模不斷增長,傳統(tǒng)的計算方法已經無法滿足需求。因此,分布式計算技術逐漸成為了主流。 Hadoop和Spark是目前最為流行的分布式計算框架之一,它們都提供了高

    2024年01月23日
    瀏覽(93)
  • 微服務的藝術:構建可擴展和彈性的分布式應用

    微服務的藝術:構建可擴展和彈性的分布式應用

    ??歡迎來到架構設計專欄~微服務的藝術:構建可擴展和彈性的分布式應用 ☆* o(≧▽≦)o *☆嗨~我是IT·陳寒?? ?博客主頁:IT·陳寒的博客 ??該系列文章專欄:架構設計 ??其他專欄:Java學習路線 Java面試技巧 Java實戰(zhàn)項目 AIGC人工智能 數據結構學習 ??文章作者技術和水平

    2024年02月07日
    瀏覽(1318)
  • 數據存儲和分布式計算的實際應用:如何使用Spark和Flink進行數據處理和分析

    作為一名人工智能專家,程序員和軟件架構師,我經常涉及到數據處理和分析。在當前大數據和云計算的時代,分布式計算已經成為了一個重要的技術方向。Spark和Flink是當前比較流行的分布式計算框架,它們提供了強大的分布式計算和數據分析功能,為數據處理和分析提供了

    2024年02月16日
    瀏覽(92)
  • Jenkins分布式實現: 構建彈性和可擴展的CI/CD環(huán)境!

    Jenkins分布式實現: 構建彈性和可擴展的CI/CD環(huán)境!

    Jenkins是一個流行的開源持續(xù)集成(Continuous Integration,CI)和持續(xù)交付(Continuous Delivery,CD)工具,它通過自動化構建、測試和部署過程,幫助開發(fā)團隊更高效地交付軟件。Jenkins的分布式實現允許將任務分散到多個計算機上執(zhí)行,從而提高系統(tǒng)的彈性和可擴展性。本文將深入

    2024年02月01日
    瀏覽(94)
  • 阿里云 ACK 云原生 AI 套件中的分布式彈性訓練實踐

    阿里云 ACK 云原生 AI 套件中的分布式彈性訓練實踐

    作者:霍智鑫 眾所周知,隨著時間的推移,算力成為了 AI 行業(yè)演進一個不可或缺的因素。在數據量日益龐大、模型體量不斷增加的今天,企業(yè)對分布式算力和模型訓練效率的需求成為了首要的任務。如何更好的、更高效率的以及更具性價比的利用算力,使用更低的成本來訓

    2024年01月25日
    瀏覽(89)
  • 分布式計算框架:Spark、Dask、Ray
分布式計算哪家強:Spark、Dask、Ray

    分布式計算框架:Spark、Dask、Ray 分布式計算哪家強:Spark、Dask、Ray

    目錄 什么是分布式計算 分布式計算哪家強:Spark、Dask、Ray 2 選擇正確的框架 2.1 Spark 2.2 Dask 2.3 Ray 分布式計算是一種計算方法,和集中式計算是相對的。 隨著計算技術的發(fā)展, 有些應用需要非常巨大的計算能力才能完成,如果采用集中式計算,需要耗費相當長的時間來完成

    2024年02月11日
    瀏覽(102)
  • Spark單機偽分布式環(huán)境搭建、完全分布式環(huán)境搭建、Spark-on-yarn模式搭建

    Spark單機偽分布式環(huán)境搭建、完全分布式環(huán)境搭建、Spark-on-yarn模式搭建

    搭建Spark需要先配置好scala環(huán)境。三種Spark環(huán)境搭建互不關聯,都是從零開始搭建。 如果將文章中的配置文件修改內容復制粘貼的話,所有配置文件添加的內容后面的注釋記得刪除,可能會報錯。保險一點刪除最好。 上傳安裝包解壓并重命名 rz上傳 如果沒有安裝rz可以使用命

    2024年02月06日
    瀏覽(106)
  • spark分布式解壓工具

    ? spark解壓縮工具,目前支持tar、gz、zip、bz2、7z壓縮格式,默認解壓到當前路下,也支持自定義的解壓輸出路徑。另外支持多種提交模式,進行解壓任務,可通過自定義配置文件,作為spark任務的資源設定 2.1 使用hadoop的FileSystem類,對tos文件的進行讀取、查找、寫入等操作

    2024年02月02日
    瀏覽(96)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包