PySpark數據輸入
1.理解RDD對象
2.掌握PySpark數據輸入的2種方法
RDD對象
PySpark支持多種數據的輸入,在輸入完成后,都會得到一個:RDD類的對象
RDD全稱為:彈性分布式數據集(Resilient Distributed Datasets)
PySpark針對數據的處理,都是以RDD對象作為載體,即:
數據存儲在RDD內;各類數據的計算方法,也都是RDD的成員方法;RDD的數據計算方法,返回值仍舊是RDD對象
Python數據容器轉RDD對象
PySpark支持通過SparkContext對象的parallelize成員方法,將
注意:
字符串會被拆分為1個個的字符,存入RDD對象;字典僅有key會被存入RDD對象
"""
通過PySpark代碼加載數據,即數據輸入
"""
from pyspark import SparkContext
sc = SparkContext(conf=conf)# 通過paralelize 方法將Pythn對象加載到Spark內,成為RDD對象
rdd1 = sc.paralelize([1,2,3,4,5])
rdd2 = sc.paralelize((1,2,3,4,5))
rdd3 = sc.paralelize("abcdedf")
rdd4 = sc.paralelize({1,2,3,4,5})
rdd5 = sc.paralelize("key1":"value1","key2":"value2")# 如果要查看RDD里面有什么內容,需要用collect()方法
print(rdd1.collect())
print(rdd2.collect())
print(rdd3.collect())
print(rdd4.collect())
print(rdd5.collect())sc.stop()
# 用過textFile方法,讀取文件數據加載到Spark內,成為RDD對象
rdd = sc.textFile("D:/hello.txt")
print(rdd.collect())sc.stop()
讀取文件轉RDD對象
PySpark也支持通過SparkContext入口對象,來讀取文件,來構建出RDD對象
from pyspark import SparkContextconf = SparkConf().ssetMaster("local[*]").setAppName("test_spark_app")
sc = SparkContext(conf=conf)rdd = sc.textFile(文件路徑)# 打印RDD內容
print(rdd.collect())
總結
1.RDD對象是什么?為什么要使用它
RDD對象稱之為分布式彈性數據集,是PySpark中數據計算的載體,它可以:提供數據存儲;提供數據計算的各類方法;數據計算的方法,返回值仍舊是RDD(RDD迭代計算)后續對數據進行各類計算,都是基于RDD對象進行
2.如何輸入數據到Spark(即得到RDD對象)
通過SparkContext的parallelize成員方法,將Python數據容器轉換為RDD對象
通過SparkContext的textFile成員方法,讀取文本文件得到RDD對象