啟動spark shell
開啟命令列或終端——pyspark
import pyspark
匯入pyspark
檢視spark context資訊
讀入檔案:
列印檔案內容
可利用collect()函式,它能夠以陣列的形式,返回rdd資料集的所有元素
lines = spark.read.text(『file:///home/wordcound.txt』).rdd
for i in lines.collect():
print(i)
處理檔案:
lines儲存的是row object型別
將其中的string取出,利用map api進一步轉換rdd
lines_map = lines.map(lambda x: x[0])
for i in lines_map.collect():
print(i)
統計詞頻
為了統計每個單詞的出現頻率,需要對每個單詞分別統計
第一步需要將字串以空格作為分隔符將單詞提取出來
第二步是為每個詞設定乙個計數器
flat_map = lines_map.flatmap(lambda x: x.split(』 '))
rdd_map = flat_map.map(lambda x: [x, 1])
for i in rdd_map.collect():
print(i)
將每個詞視作為乙個key,相同的key對應的值相加,統計每個詞出現的次數
第三部對rdd_map的中的元素執行相加「add」操作得出詞頻
from operator import add
add_map = rdd_map.reducebykey(add)
for i in add_map.collect():
print(i)
spark基本使用
啟動pysparkcd usr local spark bin pyspark統計文字的行數lines sc.textfile file usr local spark readme.md lines.count rdd的persisit方法會將該rdd物件持久化到記憶體中,對於可能會被重複呼叫的r...
Spark的基本概念
2018年年末,開始spark學習 block 輸入可能以多個檔案的形式儲存在hdfs上,每個file都包含了很多塊,稱為block。inuptsplit 當spark讀取這些檔案作為輸入時,會根據具體資料格式對應的inputformat進行解析,一般是將若干個block合併成乙個輸入分片,稱為in...
Spark基本概念
下面是spark的乙個日誌計數示例,該程式演示了spark的計算模型 下面是spark執行時涉及的各元件的概況圖 從rdd轉換和儲存角度,使用者程式對rdd通過多個函式進行操作,將rdd進行轉換。block manager管理rdd的物理分割槽,每個block就是節點上對應的乙個資料塊,可以儲存在記...