زمان تخمینی مطالعه:‌ 2 دقیقه

انباره ها


انباره ها متغیرهایی هستند که فقط در میان عملیات انجمنی ( Associative ) "اضافه می شوند" (added)

بنابراین، برای پشتیبانی در موازی سازی ( Paraller ) کارآمد هستند.

از انباره ها برای پیاده سازی شمارنده ها ( Counters ) ( مانند MapReduce ) یا جمع ها ( Sums ) استفاده می کنند.

اسپارک به طور ذاتی از انباره های نوع عددی ( numeric ) پشتیبانی می کند و برنامه نویسان برای انواع دیگر پشتیبانی آن را اضافه کنند. اگر انباره ها با یک نام ساخته شوند، در Spark UI نمایش داده می شوند.

این میتونه مفید باشد برای فهمیدن پیشرفت اجرای طبقات ( Stages ) ( نکته : این هنوز در پایتون پشتیبانی نمی شود. )

یک انباره از متغیر اولیه V با صدا زدن تابع SparkContext.accumulator(V) ساخته می شود، Task ها روی خوشه ای اجرا می شوند که از طریق تابع add یا عملگرهای - + اضافه می شوند ( در پایتون و اسکالا ) به هرحال آن ها نمی توانند این مقدار را بخوانند، فقط درایور برنامه می تواند مقدار انباره را با استفاده از تابع Value بخواند.

کد زیر نشان می دهد یک انباره چطور المان های آرایه را اضافه ( add ) می کند.

scala> val accum = sc.accumulator(0)
scala> sc.parallelize(Array(1, 2, 3, 4)).foreach(x => accum += x)

اگر شما می خواهید خروجی کد بالا را ببینید باید از دستور زیر استفاده کنید :

scala> accum.value

خروجی

res2: Int = 10

لطفا در راستای هرچه بهتر شدن کیفیت مطالب نظر خود را در رابطه با این سرفصل برای ما ارسال نمایید.