深圳市seo網(wǎng)站設(shè)計多少錢國外服務(wù)器免費ip地址
一、RDD對象
PySpark支持多種數(shù)據(jù)的輸入,在輸入完成后,都會得到一個:RDD類的對象
RDD全稱為:彈性分布式數(shù)據(jù)集(Resilient Distributed Datasets)
PySpark針對數(shù)據(jù)的處理,都是以RDD對象作為載體,即:
- 數(shù)據(jù)存儲在RDD內(nèi)
- 各類數(shù)據(jù)的計算方法,也都是RDD的成員方法
- RDD的數(shù)據(jù)計算方法,返回值依舊是RDD對象
????????PySpark的編程模型可以歸納為:準(zhǔn)備數(shù)據(jù)到RDD -> RDD迭代計算 -> RDD導(dǎo)出為list、文本文件等,即:源數(shù)據(jù) -> RDD -> 結(jié)果數(shù)據(jù)
二、Python數(shù)據(jù)容器轉(zhuǎn)RDD對象
????????PySpark支持通過SparkContext對象的parallelize成員方法,將:list、tuple、set、dict、str轉(zhuǎn)換為PySpark的RDD對象
?????????PySpark也支持通過SparkContext入口對象,來讀取文件,來構(gòu)建出RDD對象。
代碼案例:
"""
#通過PySpark代碼加載數(shù)據(jù),即數(shù)據(jù)輸入
"""
from pyspark import SparkConf,SparkContext
conf = SparkConf().setMaster("local[*]").setAppName("test_spark")
sc = SparkContext(conf = conf)# 通過parallelize方法將Python對象加載到Spark內(nèi),成為RDD對象
rdd1 = sc.parallelize([1, 2, 3, 4, 5])
rdd2 = sc.parallelize((1, 2, 3, 4, 5))
rdd3 = sc.parallelize("abcdefg")
rdd4 = sc.parallelize({1, 2, 3, 4, 5})
rdd5 = sc.parallelize({"key1": "value1", "key2": "value2"})# 如果要查看RDD里面有什么內(nèi)容,需要用collect()方法
print(rdd1.collect())
print(rdd2.collect())
print(rdd3.collect())
print(rdd4.collect())
print(rdd5.collect())
打印結(jié)果:
pyspark安裝方法 :
第一種方法時命令行安裝:pip install pyspark;
第二種方式是直接在Pycharm進(jìn)行安裝,如下圖所示;
????????安裝完成后,運行代碼出現(xiàn)缺少Java環(huán)境依賴,需要配置java運行環(huán)境才可以運行Pyspark導(dǎo)入報對象,配置環(huán)境的過程可以參考博客教程:
java 環(huán)境配置(詳細(xì)教程)_java環(huán)境配置_多加點辣也沒關(guān)系的博客-CSDN博客
JDK 8.0 的安裝包已上傳資源包,希望可以幫助到大家!
?