RDD

2016-06-23 7 views
0
の要素の値の

マイRDD all_keys店舗リストとして保存されたリストの中で要素のユニークなセットの検索:RDD

>> all_keys.take(3) 
[['a','b','c'], 
['a','b'], 
['a','d','f']] 

これらの値のほとんどは繰り返しているが、他の値が存在しない持っているか、いくつかのリストがありますがリスト。

RDDに保存されているすべてのリストから一意の要素のリストを取得するにはどうすればよいですか?あなたは、最終的なリストで重複を削除した場合の平均

答えて

2

を使用しています。次に、distinct()メソッドを使用して一意の文字列のみを返すことができます。

データに

all_keys = [['category', 'ser_id', 'appname', 'timestamp', 'label', 'ser_token', 'appver', 'action'], 
    ['category', 'ser_id', 'appname', 'timestamp', 'vale', 'label', 'ser_token', 'appver', 'action', 'type'], 
    ['category', 'ser_id', 'appname', 'timestamp', 'vale', 'label', 'ser_token', 'appver', 'type' ]] 
rdd = sc.parallelize(all_keys) 

rdd.flatMap(explode).distinct().collect() 

結果

を収集し、個別の要素を取得し、

def explode(row): 
    for k in row: 
     yield k 

Flatmap flatMap関数を定義を作成します。

[ 'カテゴリ'、 'ser_id'、 'タイプ'、 'アクション'、 'タイムスタンプ'、 'ser_token'、 'APPVER'、 '谷'、 'ラベル'、 「APPNAME ']

0

はあなたのRDD、例えば1つのキーの重複したエントリを削除する意味場合

list(set(all_keys.take(3))) 

(あなたの例には、重複はありません) 「」あなたは、文字列のRDDに文字列のリストのRDDからそれを変換するために、あなたのRDDをflatMapする必要があります

all_keys.distinct(lambda row:row[0])