[006][Apache Spark](2)

PYTANIE : Operacje oparte na skanowaniu Apache Spark 

Patrząc na pierwszy artykuł na temat RDD / Apache Spark, znalazłem stwierdzenie, że „RDD ulegają degradacji z wdziękiem, gdy nie ma wystarczającej ilości pamięci do ich przechowywania, o ile są one używane tylko w operacjach opartych na skanowaniu”.

Czym są operacje oparte na skanowaniu w kontekście RDD, a które z transformacji w Spark są operacjami opartymi na skanowaniu?

ODPOWIEDŹ :

Operacje oparte na skanowaniu to w zasadzie wszystkie operacje wymagające oceny predykatu na RDD. Innymi słowy, za każdym razem, gdy utworzysz RDD lub ramkę danych, w której musisz obliczyć predykat, taki jak wykonanie filtru, mapy dla klasy sprawy, na przykład, a nawet metody wyjaśnienia, będzie uważany za operację opartą na skanowaniu.

Aby być bardziej przejrzystym, przejrzyjmy definicję predykatu. Predykat lub predykat funkcjonalny jest logicznym symbolem, który może być zastosowany do terminu przedmiotowego w celu wytworzenia innego terminu przedmiotowego. Predykaty funkcjonalne są również czasami nazywane odwzorowaniami, ale termin ten może mieć również inne znaczenie.

Przykład:

// transformacja oparta na skanie

rdd.filter(!_.contains(“#”)) // here the predicate is !_.contains(“#”)

// kolejna transformacja oparta na skanie

rdd.filter(myfunc) // myfunc jest funkcją logiczną

// trzecia również trywialna transformacja oparta na skanie, po której następuje transformacja nie oparta na skanie.

rdd.map (myfunc2)

.reduce (myfunc3)

Jeśli chcesz zrozumieć, jak działają wewnętrzne iskierki, sugeruję, abyś obejrzał prezentację Databricks na ten temat

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *