SPARK CORE(python編程)

一、SPARK CORE的使用

1.在JUPYTER網頁上創建新的ipynb文件

2.環境準備代碼

import os

import sys

 

spark_home = os.environ.get('SPARK_HOME',None)

if not spark_home:

    raise ValueError('SPARK_HOME enviroment variable is not set')

sys.path.insert(0,os.path.join(spark_home,'python'))

sys.path.insert(0,os.path.join(spark_home,'python/lib/py4j-0.10.4-src.zip'))

exec(open(os.path.join(spark_home,'python/pyspark/shell.py')).read())

運行後顯示

二、概念

1.SPARK CORE:spark生態圈的核心

RDD:容錯性分佈數據(Resilient Distributed Dataset),SPARK CORE的任務就是對這些數據進行分佈式計算

2.RDD類型:

  •   並行集合(分佈式化的數據對象,類比python中的list)
  • 文件系統數據集(Hadoop Datasets.文本文件,如通過sc.textFile()讀取的數據)

對RDD的操作

  • 變換(Transformations):返回值仍是RDD,但是隻有等到Actions操作時纔會真正計算給出結果--Lazy Evaluation
  • 操作(Actions):返回值是非並行化的數據集合如python的list

3.並行化集合(我們處裏的RDD數據,所有對於集合而言,第一步需要並行化)

parallelize(list)

可以看到我們的集合已經成功並行化

4.取值操作

take(n):從rdd返回n個元素

top(num):從rdd返回最大的num個數的元素

first():從rdd返回第一個元素

collect():從rdd返回所有元素

5.rdd元素變換

  • map(): map()函數需要一個參數,參數是一個函數,簡單理解:將RDD的每一個元素取出,分別通過這個函數變換之後,返回一個新的RDD. 這裏使用匿名函數(lambda),給RDD每一個元素執行加一的變量,最後通過collect()操作查看結果

  • flatMap(): 注意傳入的函數的返回值一定要是可迭代的對象(比如元組  集合 列表)簡單的理解:對RDD每一個元素執行函數變換,返回一個迭代器,最後展平結果

  • filter(): 參數同樣是一個函數,作用是過濾元素 執行過程:將RDD每一個元素執行你寫的條件判斷語句,只有結果爲True才返回

  • 其他
  • union():聯合    intersection():交集  subtract():差集   cartesian():笛卡爾

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章