2015-08-06 4 views
0

У меня есть два RDD.Spark two RDD join issue

moviesRDD =[(1,'monster'),(2,'minions 3D'),...] #(movieID,title) 
ratingsRDD =[(1,(3,4)),(2,(4,5)),.....] #(movieID,(numbersofrating,avg_rating)) 

Идеальные результаты есть:

newRDD =[(3,'monster',4),(4,'minions 3D',5),....] #(numbersofrating,title,avg_rating) 

Я не уверен, как получить newRDDs.

ответ

1

Это должно сделать трюк:

(moviesRDD 
    .join(ratingsRDD) # Join by key 
    .values() # Extract values 
    .map(lambda x: (x[1][0], x[0], x[1][1]))) # Reshape 
+0

что результат выглядит как после процесса moviesRDD.join (ratingsRDD) – user3849475

+0

Это '(ключ, (v1, v2))'. Например, '(1, ('монстр', (3, 4)))' – zero323

+0

получил это! Это очень ясно! – user3849475