Sobes.tech
Middle

რა არის lazy გამოთვლები Spark-ში?

sobes.tech AI

პასუხი AI-სგან

Apache Spark-ში, ლეზი (lazy) გამოთვლები ნიშნავს, რომ მონაცემებზე ოპერაციები არ ხორციელდება მაშინვე მათ გამოძახებისას. ამის ნაცვლად, Spark ქმნის გამოთვლის გეგმას (DAG — Directed Acyclic Graph), რომელიც შესრულდება მხოლოდ მაშინ, როდესაც შედეგი საჭირო იქნება, მაგალითად, collect(), count(), save() ფუნქციების გამოძახებისას.

ეს საშუალებას აძლევს ოპტიმიზაცია განხორციელდეს, რამდენიმე ტრანსფორმაციის ერთ ეტაპად გაერთიანებით, მონაცემების წაკითხვასა და ჩაწერას მინიმუმამდე დაყვანით და დატვირთვის ეფექტიან განაწილებით კლასტერებზე.

მაგალითი:

val rdd = sc.textFile("data.txt")
val filtered = rdd.filter(line => line.contains("error")) // ლეზი ტრანსფორმაცია
val count = filtered.count() // მოქმედება, რომელიც იწყებს გამოთვლებს

აქ filter არ ხორციელდება მაშინვე, არამედ მხოლოდ count()-ის გამოძახებისას.