2017-02-08 2 views
0

私はsparkを学習しようとしています。Python Sparkでの正確な文字列の近似

RDD1 
[["James Dean,1"], ["Roger Moore,2"]] 

RDD2 
[["22,1931,James Deen"], ["23,1927,Roger Moor"]] 

今すぐRDD2内のデータが正しく入力されない場合があります:私は次の形式を持つ2つのRDDSを持っています。私はRDD1に行き、それぞれの名前を確認してから、RDD2のすべての類似した文字列を検索し、その綴りを訂正したい。私はこれについてどうやって行くのですか? 私はスパークに慣れているので、私は完全に迷っています。

+0

ルックアップ編集距離。 Sparkで試してみる前に、まずこれをPython(またはScala)で解決してみてください。 – arun

答えて

0

ドライバ&でrdd2を収集して戻してください。 rdd2がドライバの割り当てられたメモリに適合しない場合は、OOMエラーが発生することに注意してください。あなたが言及して以来、これは学習の練習です、あなたのrddsはあまりにも大きくないと思います。

bc_var = rdd2.collect() 
v = sc.broadcast(bc_var) 

def fix_spelling(row): 
    name, id = row 
    for day, year, old_name in v.value: 
     new_name = compare(name, old_name) # compare name with old_name & determine if old_name needs to be fixed. 
    yield [day, year, new_name, old_name, name] 

rdd.flatMap(fix_spelling) 
関連する問題