2016-04-14 16 views
0

Aynı uzunlukta iki python dizim var. İki ayrı metin dosyasını okumaktan üretilirler. Biri etiketleri temsil eder; "labelArray" olarak adlandırılmasına izin verin. Diğer bir dizi veri dizisidir; "dataArray" olarak adlandırılsın. Bunları LabeledPoint'in bir RDD nesnesine dönüştürmek istiyorum. Bunu nasıl yapabilirim?Etiketten RDD Dizi ve veri python/spark dizisi

+1

Her bir veri dizisinin ilk birkaç satırını bize göster Sonra kodun yazılmasına yardımcı olabiliriz. –

cevap

2

Kaynak dataArray ve lableArray kodunda açıklandığı gibi listeler olduğunu varsayalım. Bir birleştirilmiş RDD İşte

>>> lableArray=['l1','l2','l3'] 
>>> dataArray=['d1','d2','d3'] 
>>> rdd2=sc.parallelize(lableArray) 
>>> rdd1=sc.parallelize(dataArray) 
>>> rdd1.collect() 
['d1', 'd2', 'd3'] 
>>> rdd2.collect() 
['l1', 'l2', 'l3'] 
>>> rdd=rdd2.zipWithIndex().map(lambda x:(x[1],x[0])).join(rdd1.zipWithIndex().map(lambda y:(y[1],y[0]))).map(lambda x:x[1]) 
>>> rdd.collect() 
[('l1', 'd1'), ('l2', 'd2'), ('l3', 'd3')] 

oluşturmak için aşağıdaki gibi bir şey deneyebilirsiniz "RDD'

1

Kıvılcım için iki RDD birleştirebilirsiniz bir işlev takeSample var dataArray ve lableArray hem birleştirerek oluşturulan nihai sonucudur Bir RDD