Spark Streaming მონაცემთა გაწმენდის მექანიზმი
(I) DStream და RDD
როგორც ვიცით, Spark Streaming-ის გამოთვლა Spark Core-ზეა დაფუძნებული, ხოლო Spark Core-ის ბირთვი RDD-ა, ამიტომ Spark Streaming ასევე RDD-სთან უნდა იყოს დაკავშირებული. თუმცა, Spark Streaming მომხმარებლებს RDD-ის პირდაპირ გამოყენების საშუალებას არ აძლევს, არამედ DStream-ის კონცეფციების ერთობლიობას აბსტრაქტულად ასახელებს. DStream და RDD ინკლუზიური ურთიერთობებია, რომელთა გაგება Java-ში დეკორაციის ნიმუშად შეიძლება, ანუ DStream RDD-ის გაუმჯობესებაა, მაგრამ ქცევა RDD-ს მსგავსია.
DStream-საც და RDD-საც რამდენიმე პირობა აქვთ.
(1) აქვთ მსგავსი ტრანსფორმაციის მოქმედებები, როგორიცაა map, reduceByKey და ა.შ., მაგრამ ასევე აქვთ რამდენიმე უნიკალური, როგორიცაა Window, mapWithStated და ა.შ.
(2) ყველას აქვს მოქმედების მოქმედებები, როგორიცაა foreachRDD, count და ა.შ.
პროგრამირების მოდელი თანმიმდევრულია.
(ბ) DStream-ის დანერგვა Spark Streaming-ში
DStream შეიცავს რამდენიმე კლასს.
(1) მონაცემთა წყაროს კლასები, როგორიცაა InputDStream, კერძოდ, DirectKafkaInputStream და ა.შ.
(2) კონვერტაციის კლასები, როგორც წესი, MappedDStream, ShuffledDStream
(3) გამომავალი კლასები, როგორც წესი, როგორიცაა ForEachDStream
ზემოაღნიშნულიდან გამომდინარე, მონაცემები დასაწყისიდან (შეყვანა) ბოლომდე (გამოყვანა) ხორციელდება DStream სისტემის მიერ, რაც ნიშნავს, რომ მომხმარებელს ჩვეულებრივ არ შეუძლია RDD-ების პირდაპირ გენერირება და მანიპულირება, რაც ნიშნავს, რომ DStream-ს აქვს შესაძლებლობა და ვალდებულება, იყოს პასუხისმგებელი RDD-ების სასიცოცხლო ციკლზე.
სხვა სიტყვებით რომ ვთქვათ, Spark Streaming-ს აქვსავტომატური გაწმენდაფუნქცია.
(iii) RDD-ის გენერირების პროცესი Spark Streaming-ში
Spark Streaming-ში RDD-ების სიცოცხლის ციკლი დაახლოებით შემდეგნაირად გამოიყურება.
(1) InputDStream-ში მიღებული მონაცემები გარდაიქმნება RDD-ად, მაგალითად DirectKafkaInputStream-ად, რომელიც წარმოქმნის KafkaRDD-ს.
(2) შემდეგ MappedDStream-ისა და სხვა მონაცემების კონვერტაციის მეშვეობით, ამ დროს პირდაპირ ეწოდება RDD, რომელიც შეესაბამება კონვერტაციის რუკის მეთოდს.
(3) გამომავალი კლასის ოპერაციაში, მხოლოდ მაშინ, როდესაც RDD გამოვლენილია, შეგიძლიათ მომხმარებელს მისცეთ შესაბამისი შენახვის, სხვა გამოთვლების და სხვა ოპერაციების შესრულების უფლება.