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?
Pytanie zaktualizowane, przepraszam za spóźnioną odpowiedź. – gunererd