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

10-用PySpark建立第一個(gè)Spark RDD

這篇具有很好參考價(jià)值的文章主要介紹了10-用PySpark建立第一個(gè)Spark RDD。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


PySpark實(shí)戰(zhàn)筆記系列第一篇
10-用PySpark建立第一個(gè)Spark RDD,PySpark學(xué)習(xí)庫,大數(shù)據(jù),pyspark


RDD概念

Apache Spark的核心組件的基礎(chǔ)是RDD。所謂的RDD,即彈性分布式數(shù)據(jù)集(Resiliennt Distributed Datasets),基于RDD可以實(shí)現(xiàn)Apache Spark各個(gè)組件在多個(gè)計(jì)算機(jī)組成的集群中進(jìn)行無縫集成,從而能夠在一個(gè)應(yīng)用程序中完成海量數(shù)據(jù)處理。

RDD特點(diǎn)

  • 只讀不能修改:只能通過轉(zhuǎn)換操作生成一個(gè)新的RDD。
  • 分布式存儲(chǔ):一個(gè)RDD通過分區(qū)可以分布在多臺(tái)機(jī)器上進(jìn)行并行數(shù)據(jù)處理。
  • 內(nèi)存計(jì)算:可以將全部或部分?jǐn)?shù)據(jù)緩存在內(nèi)存中,且可在多次計(jì)算過程中重用。
  • 具有彈性:在計(jì)算過程中,當(dāng)內(nèi)存不足時(shí),可以將一部分?jǐn)?shù)據(jù)落到磁盤上處理

建立RDD的方式

  • 用parallelize方法建立RDD:這種方式非常簡單,主要用于進(jìn)行練習(xí)或者測試。
  • 用range方法建立RDD:這種方式和parallelize方法類似,一般來說主要用于進(jìn)行測試。
  • 使用textFile方法建立RDD:這種方式一般用于在本地臨時(shí)性地處理一些存儲(chǔ)了大量數(shù)據(jù)的文件。它依賴本地文件系統(tǒng),因此可以不需要Hadoop環(huán)境。
  • 使用HDFS建立RDD:這種方式使用HDFS文件建立RDD,需要依賴Hadoop集群環(huán)境,它應(yīng)該是最常用的一種生產(chǎn)環(huán)境下的數(shù)據(jù)處理方式。它可以針對(duì)HDFS上存儲(chǔ)的海量數(shù)據(jù),進(jìn)行離線批處理操作。

不同工具建立RDD的方式

使用PySpark Shell(交互環(huán)境)建立RDD

在安裝完成Spark環(huán)境后,就具備了Shell這款工具。其中,Spark Shell是針對(duì)Scala語言的,而PySpark Shell則是針對(duì)Python語言的。

使用PySpark Shell工具的方式,在命令行輸入如下命令:pyspark

PySpark Shell默認(rèn)會(huì)自動(dòng)創(chuàng)建sc對(duì)象和spark對(duì)象,因此可以在交互環(huán)境中直接進(jìn)行調(diào)用,而無須手動(dòng)創(chuàng)建。這里,sc對(duì)象是SparkContext的實(shí)例,而spark對(duì)象是SparkSession的實(shí)例。

10-用PySpark建立第一個(gè)Spark RDD,PySpark學(xué)習(xí)庫,大數(shù)據(jù),pyspark

使用VSCode編程建立RDD

在VSCode中以編程方式需要手動(dòng)創(chuàng)建SparkContext實(shí)例。

  • 首先需要用from pyspark import SparkConf, SparkContext導(dǎo)入SparkConf和SparkContext。
  • conf=SparkConf().setAppName(“WordCount”).setMaster("local[**]")**創(chuàng)建了一個(gè)SparkConf實(shí)例,其中用setAppName設(shè)置了本次程序的名稱,用setMaster設(shè)置了Spark Master的方式為local[]。
  • **sc=SparkContext(conf=conf)**創(chuàng)建SparkContext實(shí)例sc,這與PySparkShell默認(rèn)創(chuàng)建的sc對(duì)象類似。
  • SparkContext不能一次運(yùn)行多個(gè),否則會(huì)報(bào)ValueError: Cannot run multipleSparkContexts at once; existing SparkContext的錯(cuò)誤。因此需要用sc.stop()命令關(guān)閉SparkContext實(shí)例對(duì)象。

需要用pip3 install findspark命令安裝findspark,否則可能會(huì)提示無法找到pyspark模塊的錯(cuò)誤:ModuleNotFoundError: No module named ‘pyspark’。

示例界面:

10-用PySpark建立第一個(gè)Spark RDD,PySpark學(xué)習(xí)庫,大數(shù)據(jù),pyspark

使用Jupyter Notebook建立RDD

編碼方式類似VS Code,不過它的好處是

  • 可以對(duì)多個(gè)代碼以文件的形式進(jìn)行組織,
  • 可以用于編寫文檔。
  • 更高級(jí)的是可以顯示圖形和運(yùn)算結(jié)果。
  • 因此使用這種基于Web的部署方式,可以讓多個(gè)客戶端同時(shí)使用,且可共享代碼示例,真正做到圖文并茂地進(jìn)行編程。

總結(jié)

** 1.sc對(duì)象的兩種創(chuàng)建方式:**

"""
方式一:通過SparkConf創(chuàng)建
"""
from pyspark import SparkConf,SparkContext
# 創(chuàng)建SparkContext,即sc對(duì)象
conf = SparkConf().setAppName("Demo")\
				  .setMaster("local[*]")
sc = SparkContext(conf=conf)
"""
方式二:通過SparkSession創(chuàng)建
"""
from pyspark.sql import SparkSession
spark = SparkSession.builder \
					.master("local[*]") \
					.appName("Demo")	\
					.getOrCreate();
# 創(chuàng)建SparkContext,即sc對(duì)象
sc = spark.sparkContext

2.完整的常用pyspark編程開頭示例

根據(jù)上述兩種sc的創(chuàng)建方式,對(duì)應(yīng)的常用的編程開頭方式即在上述樣例的開頭,加上如下代碼:

import findspark
findspark.init()

參考資料:《Python大數(shù)據(jù)處理庫PySpark實(shí)戰(zhàn)》文章來源地址http://www.zghlxwxcb.cn/news/detail-844719.html

到了這里,關(guān)于10-用PySpark建立第一個(gè)Spark RDD的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Python】PySpark 數(shù)據(jù)計(jì)算 ⑤ ( RDD#sortBy方法 - 排序 RDD 中的元素 )

    【Python】PySpark 數(shù)據(jù)計(jì)算 ⑤ ( RDD#sortBy方法 - 排序 RDD 中的元素 )

    RDD#sortBy 方法 用于 按照 指定的 鍵 對(duì) RDD 中的元素進(jìn)行排序 , 該方法 接受一個(gè) 函數(shù) 作為 參數(shù) , 該函數(shù)從 RDD 中的每個(gè)元素提取 排序鍵 ; 根據(jù) 傳入 sortBy 方法 的 函數(shù)參數(shù) 和 其它參數(shù) , 將 RDD 中的元素按 升序 或 降序 進(jìn)行排序 , 同時(shí)還可以指定 新的 RDD 對(duì)象的 分區(qū)數(shù) ; RDD

    2024年02月14日
    瀏覽(18)
  • 【Python】PySpark 數(shù)據(jù)計(jì)算 ② ( RDD#flatMap 方法 | RDD#flatMap 語法 | 代碼示例 )

    【Python】PySpark 數(shù)據(jù)計(jì)算 ② ( RDD#flatMap 方法 | RDD#flatMap 語法 | 代碼示例 )

    RDD#map 方法 可以 將 RDD 中的數(shù)據(jù)元素 逐個(gè)進(jìn)行處理 , 處理的邏輯 需要用外部 通過 參數(shù)傳入 map 函數(shù) ; RDD#flatMap 方法 是 在 RDD#map 方法 的基礎(chǔ)上 , 增加了 \\\" 解除嵌套 \\\" 的作用 ; RDD#flatMap 方法 也是 接收一個(gè) 函數(shù) 作為參數(shù) , 該函數(shù)被應(yīng)用于 RDD 中的每個(gè)元素及元素嵌套的子元素

    2024年02月14日
    瀏覽(20)
  • 【Python】PySpark 數(shù)據(jù)輸入 ① ( RDD 簡介 | RDD 中的數(shù)據(jù)存儲(chǔ)與計(jì)算 | Python 容器數(shù)據(jù)轉(zhuǎn) RDD 對(duì)象 | 文件文件轉(zhuǎn) RDD 對(duì)象 )

    【Python】PySpark 數(shù)據(jù)輸入 ① ( RDD 簡介 | RDD 中的數(shù)據(jù)存儲(chǔ)與計(jì)算 | Python 容器數(shù)據(jù)轉(zhuǎn) RDD 對(duì)象 | 文件文件轉(zhuǎn) RDD 對(duì)象 )

    RDD 英文全稱為 \\\" Resilient Distributed Datasets \\\" , 對(duì)應(yīng)中文名稱 是 \\\" 彈性分布式數(shù)據(jù)集 \\\" ; Spark 是用于 處理大規(guī)模數(shù)據(jù) 的 分布式計(jì)算引擎 ; RDD 是 Spark 的基本數(shù)據(jù)單元 , 該 數(shù)據(jù)結(jié)構(gòu) 是 只讀的 , 不可寫入更改 ; RDD 對(duì)象 是 通過 SparkContext 執(zhí)行環(huán)境入口對(duì)象 創(chuàng)建的 ; SparkContext 讀取數(shù)

    2024年02月14日
    瀏覽(20)
  • 【Python】PySpark 數(shù)據(jù)計(jì)算 ③ ( RDD#reduceByKey 函數(shù)概念 | RDD#reduceByKey 方法工作流程 | RDD#reduceByKey 語法 | 代碼示例 )

    【Python】PySpark 數(shù)據(jù)計(jì)算 ③ ( RDD#reduceByKey 函數(shù)概念 | RDD#reduceByKey 方法工作流程 | RDD#reduceByKey 語法 | 代碼示例 )

    RDD#reduceByKey 方法 是 PySpark 中 提供的計(jì)算方法 , 首先 , 對(duì) 鍵值對(duì) KV 類型 RDD 對(duì)象 數(shù)據(jù) 中 相同 鍵 key 對(duì)應(yīng)的 值 value 進(jìn)行分組 , 然后 , 按照 開發(fā)者 提供的 算子 ( 邏輯 / 函數(shù) ) 進(jìn)行 聚合操作 ; 上面提到的 鍵值對(duì) KV 型 的數(shù)據(jù) , 指的是 二元元組 , 也就是 RDD 對(duì)象中存儲(chǔ)的數(shù)據(jù)是

    2024年02月14日
    瀏覽(26)
  • 【Python】PySpark 數(shù)據(jù)計(jì)算 ① ( RDD#map 方法 | RDD#map 語法 | 傳入普通函數(shù) | 傳入 lambda 匿名函數(shù) | 鏈?zhǔn)秸{(diào)用 )

    【Python】PySpark 數(shù)據(jù)計(jì)算 ① ( RDD#map 方法 | RDD#map 語法 | 傳入普通函數(shù) | 傳入 lambda 匿名函數(shù) | 鏈?zhǔn)秸{(diào)用 )

    在 PySpark 中 RDD 對(duì)象 提供了一種 數(shù)據(jù)計(jì)算方法 RDD#map 方法 ; 該 RDD#map 函數(shù) 可以對(duì) RDD 數(shù)據(jù)中的每個(gè)元素應(yīng)用一個(gè)函數(shù) , 該 被應(yīng)用的函數(shù) , 可以將每個(gè)元素轉(zhuǎn)換為另一種類型 , 也可以針對(duì) RDD 數(shù)據(jù)的 原始元素進(jìn)行 指定操作 ; 計(jì)算完畢后 , 會(huì)返回一個(gè)新的 RDD 對(duì)象 ; map 方法 , 又

    2024年02月14日
    瀏覽(33)
  • PySpark基礎(chǔ) —— RDD

    PySpark基礎(chǔ) —— RDD

    1.查看Spark環(huán)境信息 2.創(chuàng)建RDD 創(chuàng)建RDD主要有兩種方式 第一種:textFile方法 第二種:parallelize方法 ?2.1.textFile方法 本地文件系統(tǒng)加載數(shù)據(jù) ?2.2.parallelize方法 ?2.3.wholeTextFiles方法 Action動(dòng)作算子/行動(dòng)操作 1.collect 2.take ?3.first 4.top 5.takeOrdered 6.takeSample 7.count 8.sum 9.histogram 10.fold 11.re

    2024年02月07日
    瀏覽(23)
  • PySpark之RDD的持久化

    PySpark之RDD的持久化

    當(dāng)RDD被重復(fù)使用,或者計(jì)算該RDD比較容易出錯(cuò),而且需要消耗比較多的資源和時(shí)間的時(shí)候,我們就可以將該RDD緩存起來。 主要作用: 提升Spark程序的計(jì)算效率 注意事項(xiàng): RDD的緩存可以存儲(chǔ)在內(nèi)存或者是磁盤上,甚至可以存儲(chǔ)在Executor進(jìn)程的堆外內(nèi)存中。主要是放在內(nèi)存中,因此

    2024年01月23日
    瀏覽(18)
  • PySpark RDD的緩存和Checkpoint

    PySpark RDD的緩存和Checkpoint

    RDD之間進(jìn)行相互迭代計(jì)算(Transformation的轉(zhuǎn)換),當(dāng)執(zhí)行開啟后,新RDD的生成,代表老RDD的消息,RDD的數(shù)據(jù)只在處理的過程中存在,一旦處理完成,就不見了,所以RDD的數(shù)據(jù)是過程數(shù)據(jù)。 RDD數(shù)據(jù)是過程數(shù)據(jù)的這個(gè)特性可以最大化的利用資源,老舊的RDD沒用了就會(huì)從內(nèi)存中清理

    2023年04月09日
    瀏覽(22)
  • spark之a(chǎn)ction算子學(xué)習(xí)筆記(scala,pyspark雙語言)

    spark之a(chǎn)ction算子學(xué)習(xí)筆記(scala,pyspark雙語言)

    函數(shù)簽名:def collect(): Array[T] 功能說明:收集每個(gè)分區(qū)數(shù)據(jù),以數(shù)組Array的形式封裝后發(fā)給driver。設(shè)置driver內(nèi)存:bin/spark-submit --driver-memory 10G(內(nèi)存大小) 注意:collect會(huì)把所有分區(qū)的數(shù)據(jù)全部拉取到driver端,如果數(shù)據(jù)量過大,可能內(nèi)存溢出。 圖1 結(jié)果 圖2 結(jié)果 返回RDD中元素的

    2024年02月04日
    瀏覽(33)
  • Python大數(shù)據(jù)之PySpark(三)使用Python語言開發(fā)Spark程序代碼

    Python大數(shù)據(jù)之PySpark(三)使用Python語言開發(fā)Spark程序代碼

    Spark Standalone的PySpark的搭建----bin/pyspark --master spark://node1:7077 Spark StandaloneHA的搭建—Master的單點(diǎn)故障(node1,node2),zk的leader選舉機(jī)制,1-2min還原 【scala版本的交互式界面】bin/spark-shell --master xxx 【python版本交互式界面】bin/pyspark --master xxx 【提交任務(wù)】bin/spark-submit --master xxxx 【學(xué)

    2024年01月17日
    瀏覽(98)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包