2016-03-18 27 views
0

tuples scala:yapmak Şöyle Array bir RDD [dize] sahip dize

Ben öğeler sabit sayıda bir araya birleştiren kayıt düzeni, içine her eleman, ya da her satırı yapmak gerekir
mystring= ['thisisastring', 'thisisastring', 'thisisastring', 'thisisastring' ......] 

Böylece bir bütün olarak etrafından geçebilirler.

(1, 'thisisastring') 
(2, 'thisisastring') 
(3, 'thisisastring') 

yüzden ben Tuple2 [Int, dize] şeklindedir Tuple2, kullanmaya ihtiyacım var: gibi Yani, aslında, bu kadar. Yanılıyorsam bana hatırlat. Bunu yaptığımda: . Her satıra sadece 1 tane eklediğimi anladım. Dolayısıyla, 1, 2 ve 3 satır 1, satır 2 ve satır 3'e eklemek için Dizim [String] boyunca yinelemeli bir döngüye ihtiyacım var. Süre kullanmayı düşündüm (sayım < 14900). Ancak val count sabit bir sayıdır, her seferinde sayım değerini güncelleyemiyorum. Bunu yapmanın daha iyi bir yolu var mı?

+0

'(A, B)' 'Tuple2 denk olduğunu Not (A, B)' –

+0

ne demek istiyorsun? – JY078

+0

eğer zipwithindex yaparsam, bana bir tuple hakkı verecek? bcz kenarları ve köşeleri ekleyeceğim, onlar tuples – JY078

cevap

2

ZipWithIndex'i aradığınız gibi görünüyor.

Sen sonuçlanan RDD olmak istiyorum türünü belirtmeyen

ama
bu size RDD[(Int, String)] verecektir:

rdd.flatMap(_.zipWithIndex) 

Bu size RDD[Array[(Int, String)] verecektir:

rdd.map(_.zipWithIndex) 
+0

Genel yorumunuzu zipWithIndex hakkında sorduğumuz şekilde yanıtlayın. Evet, zip ve zipWithIndex, Tuple2'yi oluşturur. –

1

nasıl kullanma hakkında & verim için.

for (i <- 1 to count) yield Tuple2(i, mystring(i))