Bir nokta işaretini kullanarak PySpark öğelerine erişebilirsiniz: r= Row(name="Alice", age=11)
verilirse, sırasıyla r.name
veya r.age
kullanarak ad veya yaş alabilirsiniz. Birinin adı element
değişkeninde kayıtlı bir öğe alması gerektiğinde ne olur? Bir seçenek r.toDict()[element]
yapmaktır. Ancak, büyük bir DataFrame
olduğu bir durumu düşünün ve bu veri çerçevesinin her satırındaki bir işlevi haritalamak isteriz. Biz kesinlikle AncakpPySpark Satır nesneleri: Satır öğelerine değişken adlarına erişme
def f(row, element1, element2):
row = row.asDict()
return ", ".join(str(row[element1]), str(row[element2]))
result = dataframe.map(lambda row: f(row, 'age', 'name'))
gibi bir şey yapabilirsiniz, her satırda toDict()
arayarak çok verimsiz olacak gibi görünüyor. Daha iyi bir yolu var mı?
> Belki bir 'filter' Örnek gösterebiliyor musunuz, bunun için 'filter' kullanmayı nasıl anlayamıyorum. –
Üzgünüm, benim hatam, ancak küçük açıklamamın ikinci kısmı doğru. Bir 'harita' en hızlı işlerden biridir çünkü paralelleştirilmesi kolaydır. –
"Haritanın" iyi olduğunu biliyorum. Ben daha iyi yapmak istiyorum ama her satırın bir dict –