2016-04-14 10 views
2

Können sagen, ich habe eine RDD wieWie Zugriff auf einzelne Elemente in einem Tupel auf einer RDD in pyspark?

[(u'Some1', (u'ABC', 9989)), (u'Some2', (u'XYZ', 235)), (u'Some3', (u'BBB', 5379)), (u'Some4', (u'ABC', 5379))]

I map bin mit einem Tupel zu einer Zeit zu erhalten, aber wie kann ich auf einzelnes Element eines Tupels zugreifen zu sehen, wie wenn ein Tupel einige Zeichen enthält. Eigentlich möchte ich diejenigen herausfiltern, die einen Charakter enthalten. Hier werden die Tupel, die ABC

enthalten Ich habe versucht, so etwas zu tun, aber es ist nicht zu helfen

def foo(line): 
    if(line[1]=="ABC"): 
      return (line) 


new_data = data.map(foo) 

Ich bin neu zu entfachen und Python als auch bitte helfen !!

Antwort

3

RDDs können direkt gefiltert werden. Im Folgenden erhalten Sie alle Datensätze, die "ABC" an der 0. Position des zweiten Elements des Tupels enthalten.

new_data = data.filter(lambda x: x[1][0] == "ABC")