2016-03-19 21 views
2

'da açıkça nasıl etkilenir Bir dosyadan büyük bir veri kümesi okumalı, onu bir Spark matrisine dönüştürmeli ve matriste bazı makine öğrenimi algoritmaları çalıştırmalıyım. Makine öğrenimi algoritmalarının hızını ölçmek istiyorum. Kıvılcım RDD'leri her zaman tembel olarak değerlendirildiğinden, makine öğrenimi algoritmasını karşılaştırmak zordur. Çalışma zamanını ölçtüğümde, giriş dosyasının ayrıştırılması için çalışma zamanını da içerir.Bir RDD'yi Spark

Spark'i bazı RDD'leri somutlaştırmak için zorlamanın bir yolu var mı? Böylece, makine öğrenimi algoritmasını çalıştırmadan önce giriş dosyasını ayrıştırabilir miyim?

sayesinde Da

+0

Veritabanına ve saveAsTable'a dönüştürme hakkında? –

cevap

3

Genellikle böyle bir şey yapmak: sadece hafızayı sağlamak belleğe sığar aksi takdirde, İşte

val persisted = rdd.persist(...); 

sizin RDD büyüklüğüne bağlıdır - bellek ve disk seviyesi .

Ve sonra: Sonra

persisted.count(); 
// now you can use 'persisted', it's materialized 

ve

yüzden saymak diğer bütün boru hattı dönüşümleri (sizin durumunuzda ml)

bir eylemdir - bu yüzden RDD gerçekleşmesi ve daha önce hiç kalıcı beri - Sonraki aşamaları rdd'yi kalıcı depolamadan alır ve dosyadan değil,

+0

Yalnızca belleğe devam ediyorsanız, val persisted = rdd.cache() öğesini kullanabilirsiniz. Sadece – PinoSan

+0

bellekte kalıcı olarak aynı etkiye sahiptir, sanırım bu demek istediğin şeydir. RDD'yi bellekte saklanan verilerle ayarlıyorum ve sayımı() çalıştırın. Giriş dosyasını ayrıştırmak için Spark'i tetikler. Ancak, kalıcı verilerde corr() çalıştırdığımda, herhangi bir hızlanma görmüyorum. Doğru olanı yapıyorum? hat = sc.textFile (sys.argv [1]) verileri = lines.map (parseVector) veri1 = data.persist (storageLevel = StorageLevel.MEMORY_ONLY) data1.count() start_time = time.time() corr = Statistics.corr (veri1, yöntem = corrType) end_time = time.time() baskı ("% s saniye" % (end_time - start_time)) bunu valide mı –

+0

senin dosya bellekte saklanabilir? Darboğazın ml cinsinden olması ve ayrıştırmada olmaması olabilir. –