Spark Streaming andmete puhastusmehhanism
(I) DStream ja RDD
Nagu me teame, põhineb Spark Streaming arvutus Spark Core'il ja Spark Core'i tuum on RDD, seega peab Spark Streaming olema samuti seotud RDD-ga. Spark Streaming ei luba kasutajatel aga RDD-d otse kasutada, vaid abstraktselt kirjeldab DStreami kontseptsioonide komplekti. DStream ja RDD on kaasavad seosed, mida võib mõista Java dekoratsioonimustrina, st DStream on RDD täiustus, kuid käitumine on sarnane RDD-ga.
Nii DStreamil kui ka RDD-l on mitu tingimust.
(1) omavad sarnaseid teisendustoiminguid, näiteks map, reduceByKey jne, aga ka mõningaid unikaalseid, näiteks Window, mapWithStated jne.
(2) kõigil on toimingud (Action), näiteks foreachRDD, count jne.
Programmeerimismudel on ühtne.
(B) DStreami tutvustus Sparki voogedastuses
DStream sisaldab mitut klassi.
(1) Andmeallika klassid, näiteks InputDStream, spetsiifiliselt DirectKafkaInputStream jne.
(2) Konversiooniklassid, tavaliselt MappedDStream, ShuffledDStream
(3) väljundklassid, tavaliselt näiteks ForEachDStream
Eelnevast lähtuvalt teeb andmete genereerimise algusest (sisend) lõpuni (väljund) DStream süsteem, mis tähendab, et kasutaja ei saa tavaliselt otse RDD-sid genereerida ja manipuleerida, mis tähendab, et DStreamil on võimalus ja kohustus vastutada RDD-de elutsükli eest.
Teisisõnu, Spark Streamingul onautomaatne puhastusfunktsioon.
(iii) RDD genereerimise protsess Spark Streamingus
Spark Streamingus RDD-de eluiga on umbes järgmine.
(1) InputDStreamis teisendatakse vastuvõetud andmed RDD-ks, näiteks DirectKafkaInputStreamiks, mis genereerib KafkaRDD.
(2) seejärel MappedDStreami ja muu andmekonverteerimise abil nimetatakse seda aega otse RDD-ks, mis vastab teisendamise kaardistamismeetodile.
(3) Väljundklassi operatsioonis saab kasutaja vastava salvestusruumi, muid arvutusi ja muid toiminguid teha ainult siis, kui RDD on avatud.