pyspark 簡單用法

2022-07-27 10:48:09 字數 1854 閱讀 9374

0. pairrdd的意思

pairrdd就是元素為鍵值對的list轉化過來的rdd物件,例如

rdd_1就是一般的非pairrdd,rdd_2為pairrdd物件,而有些sparkapi操作是針對pairrdd物件的,例如後面將要介紹的mapvalues()操作。

1. partitionby()函式

rdd.partitionby(int, function),可以對rdd物件分割槽,第乙個引數是分割槽的個數,第二個物件是自定義分割槽函式,其作用暫時沒弄清楚!

實驗**:

實驗結果:

在建立rdd物件的時候,採用parallelize()分了3個區,之後用partitionby()函式,分了2個區。

2. cache()函式

對於需要重複用到的且占用記憶體小的rdd物件,可以通過rdd.cache()儲存起來,之後再次使用的時候,直接讀取記憶體中的rdd物件,節省時間。

3. mapvalues()函式

rdd.mapvalues(func)對pairrdd的value進行map操作,不涉及key的操作,只會修改value。

實驗**:

實驗結果:

可以看出,通過map()函式可以實現mapvalues()函式的功能。

4. sortby()

用法為:rdd.sortby(func, ascending, numpartitions)

該函式對rdd物件中的元素進行排序,第乙個引數必選,其他引數可選,func指代根據什麼標準進行排序,ascending為true的時候為true公升序,反之為降序, 第三個引數numpartitions指定重新分割槽的個數。

實驗**:

實驗結果:

5. count(), countbyvalue()和countbykey()

count()用於計數rdd中元素個數。

countbyvalue()計數rdd中不同元素的相同value的個數,即根據value相同累加。

countbykey()根據key相同累加,這三個函式中,只有countbykey()只能用於pairrdd物件,其他二者無限制。

實驗**:

實驗結果:

注意:countbyvalue()和countbykey()返回的都是map,不是list。

6. take()和top()

take()取rdd物件中的前幾個元素,不排序

top()取rdd物件中的最大的幾個元素,降序

mysql的簡單用法 mysql簡單用法

刪除使用者 drop user jack drop比delete刪除的優勢在於drop可以刪除使用者的許可權,更加徹底 更改使用者名稱 rename user jack to jacknew 使用者的都存在與user表中,更改名稱,許可權不變 更改使用者密碼 update mysql.user se...

oracle cursor 簡單用法

procedure changespecialdiscount compid in invarchar2 ccid in invarchar2 cono in invarchar2 is sum cc all number 14 4 0 wsp disc number 14 4 wspcl disc...

Oracle Trigger簡單用法

1.trigger 是自動提交的,不用commit,rollback 2.trigger最大為32k,如果有複雜的應用可以通過在trigger裡呼叫procedure或function來實現。3.語法 create or replace trigger on declare begin except...