教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

PySpark中數(shù)據(jù)輸入的2種方法

更新時間:2023年02月23日14時18分 來源:傳智教育 瀏覽次數(shù):

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

  •數(shù)據(jù)存儲在RDD內

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

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

PySpark的編程模型(左圖)可以歸納為:準備數(shù)據(jù)到RDD -> RDD迭代計算 -> RDD導出為list、文本文件等,即:源數(shù)據(jù) -> RDD -> 結果數(shù)據(jù)

1677132404499_圖片1.png

PySpark支持通過SparkContext對象的parallelize成員方法,將list、tuple、set、dict、str轉換為PySpark的RDD對象,示例代碼如下:

from pyspark import SparkConf,SparkContext

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

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

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

注意:字符串會被拆分出1個個的字符,存入RDD對象,字典僅有key會被存入RDD對象。

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

from pyspark import SparkConf,SparkContext

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

rdd=sc.textFile(文件路徑)

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

0 分享到:
和我們在線交談!