32

İki farklı RDD s veri kümesini kıvılcımla birleştirmenin bir yolu var mı?Apache'de farklı RDD'lerin veri kümelerinin birleştirilmesi scala kullanılarak

Gereksinim - Aynı sütun adlarına sahip scala kullanan iki ara RDD oluşturuyorum, bu RDD'lerin sonuçlarını birleştirip UI'ye erişmek için sonucu önbelleğe almam gerekiyor. Veri kümelerini burada nasıl birleştiririm?

RDDs tip spark.sql.SchemaRDD

+1

Sadece '' '' 'ı kullanamaz mısınız? – lmm

+1

@lmm Hayır .. RDD'ye sütunlar ekleyecektir. RDD'ye satır eklemem gerekiyor. Kayıtları tek bir RDD'ye birleştirilmesi gereken aynı sütunlara sahip iki RDD var. – Atom

+1

Hayır olmaz, emin olmak için denedim. '++', her iki sonuçtan oluşan bir birleşik bir RDD oluşturur. – lmm

cevap

43

Sana (Kıvılcım-shell) RDD.union

val rddPart1 = ??? 
val rddPart2 = ??? 
val rddAll = rddPart1.union(rddPart2) 

Örnek arıyoruz düşünüyorum

val rdd1 = sc.parallelize(Seq((1, "Aug", 30),(1, "Sep", 31),(2, "Aug", 15),(2, "Sep", 10))) 
val rdd2 = sc.parallelize(Seq((1, "Oct", 10),(1, "Nov", 12),(2, "Oct", 5),(2, "Nov", 15))) 
rdd1.union(rdd2).collect 

res0: Array[(Int, String, Int)] = Array((1,Aug,30), (1,Sep,31), (2,Aug,15), (2,Sep,10), (1,Oct,10), (1,Nov,12), (2,Oct,5), (2,Nov,15)) 
+0

rddPart1.union (rddPart2) rddPart2'ye rddPart1 sütunları ekleyecektir. RddPart2 satırını rddPart1'e eklemem gerekiyor. FYI, bu durumda RDD'lerin her ikisi de aynı sütun adlarına ve türlerine sahiptir – Atom

+0

Daha önceden var olan bir RDD'ye kayıt eklemek gibi. RDD'ye yeni sütun oluşturmuyor – Atom

+2

@example bir örnek ekledi. Bir RDD'ye yeni sütun yok. – maasg

İlgili konular