首頁技術(shù)文章正文

PySpark如何輸入數(shù)據(jù)到Spark中?【RDD對(duì)象】

更新時(shí)間:2023-02-23 來源:黑馬程序員 瀏覽量:

PySpark支持多種數(shù)據(jù)的輸入,在輸入完成后,都會(huì)得到一個(gè):RDD類的對(duì)象RDD全稱為彈性分布式數(shù)據(jù)集(Resilient Distributed Datasets),PySpark針對(duì)數(shù)據(jù)的處理,都是以RDD對(duì)象作為載體,即:

  ?數(shù)據(jù)存儲(chǔ)在RDD內(nèi)

  ?各類數(shù)據(jù)的計(jì)算方法,也都是RDD的成員方法

  ?RDD的數(shù)據(jù)計(jì)算方法,返回值依舊是RDD對(duì)象

PySpark的編程模型(左圖)可以歸納為:準(zhǔn)備數(shù)據(jù)到RDD -> RDD迭代計(jì)算 -> RDD導(dǎo)出為list、文本文件等,即:源數(shù)據(jù) -> RDD -> 結(jié)果數(shù)據(jù)
1677132404499_圖片1.png
PySpark支持通過SparkContext對(duì)象的parallelize成員方法,將list、tuple、set、dict、str轉(zhuǎn)換為PySpark的RDD對(duì)象,示例代碼如下:

from pyspark import SparkConf,SparkContext

conf = SparkConf(.setMaster("local[*]").\
    setAppName("test_spark_app")
sc = SparkContext(conf=conf)

rdd=sc.para1lelize(數(shù)據(jù)容器對(duì)象)

# 輸出RDD的內(nèi)容
print(rdd.collect(0)

注意:字符串會(huì)被拆分出1個(gè)個(gè)的字符,存入RDD對(duì)象,字典僅有key會(huì)被存入RDD對(duì)象。

PySpark也支持通過SparkContext入口對(duì)象,來讀取文件,來構(gòu)建出RDD對(duì)象,示例代碼如下:

from pyspark import SparkConf,SparkContext

conf = SparkConf().setMaster("loca][*]").\
    setAppName("test_spark_app")
sc = SparkContext(conf=conf)

rdd=sc.textFile(文件路徑)

#打印RDD內(nèi)容
print(rdd.collect())


分享到:
在線咨詢 我要報(bào)名
和我們在線交談!