2015-05-27 9 views
8

Jestem całkiem nowy dla Sparka, obecnie odkrywam go grając z pyspark i iskrą skorupową.Python kontra Scala (dla zadań Sparka)

Tak, oto sytuacja, uruchamiam te same prace iskier z pyspark i iskrą skorupową.

To z pyspark:

textfile = sc.textFile('/var/log_samples/mini_log_2') 
textfile.count() 

A to jeden z zapłonowej-shell:

textfile = sc.textFile("file:///var/log_samples/mini_log_2") 
textfile.count() 

Próbowałem oba z nich kilka razy, pierwszy (Python) jeden trwa 30-35 sekund kompletny, podczas gdy drugi (scala) zajmuje około 15 sekund. Ciekawi mnie, co może spowodować różne wyniki wydajności? Czy to z powodu wyboru języka lub iskry-powłoki zrobić coś w tle, że pyspark nie?

UPDATE

Więc zrobiłem kilka testów na dużych zbiorach danych, około 550 GB (zip) w sumie. Używam Spark Standalone jako master.

Zauważyłem, że podczas korzystania z pyspark, zadania są równo dzielone między executorów. Jednak podczas korzystania z iskrzenia powłoki zadania nie są dzielone równo. Bardziej wydajne maszyny otrzymują więcej zadań, a słabsze maszyny wykonują mniej zadań.

Z iskrowym skorupą, praca jest zakończona w 25 minut, a przy pomocy pysparku trwa około 55 minut. Jak mogę sprawić, aby Spark Standalone przypisywał zadania do pyspark, ponieważ przypisuje zadania za pomocą iskrzenia-powłoki?

spark-shell

Pyspark

Odpowiedz

1

Używanie Pythona ma pewne obciążenie, ale to znaczenie zależy od tego, co robisz. Chociaż najnowsze raporty wskazują, że obciążenie nie jest zbyt duże (specifically for the new DataFrame API)

niektóre napotkane naprężenia wiążą się ze stałą na pracę - co jest prawie nieistotne w przypadku dużych zadań. Należy wykonać próbny wzorzec z większym zbiorem danych i sprawdzić, czy narzut jest stałym dodatkiem, czy jest proporcjonalny do rozmiaru danych.

Kolejnym potencjalnym wąskim gardłem są operacje, które stosują funkcję Pythona dla każdego elementu (mapa itd.) - jeśli te operacje są istotne dla Ciebie, powinieneś je przetestować.

+0

Pytanie zaktualizowane, przepraszam za spóźnioną odpowiedź. – gunererd

Powiązane problemy