عملگرهای Transformation دسته ای از تابع ها هستند که بر روی یک RDD اعمال شده و برآیند آنها یک RDD تازه است. چون RDD توانایی بخش شدن روی گره های یک کلاستر را دارد، بنابراین متدهای Transformation نیز بر روی این داده های توزیع شده به کار می روند. اسپارک یه چارچوب برنامه نویسی تابعی داده محور (Data Centric Functional Programming) است. در برنامه نویسی تابعی، یک تابع دست نویس برنامه نویس یا یک تابع از پیش آماده، می تواند تابع دیگری را به عنوان ورودی دریافت کند.

متد ()count از کلاس RDD

در لینک زیر به کمک متد ()textFile از کلاس SparkContext یک فایل متنی ساده با پسوند txt خوانده شده است، بنابراین متغیر rdd که برایند تابع ()textFile را نگه می دارد یک RDD (نمونه ای از کلاس RDD) است، بنابراین برای آنکه شمار (تعداد) خط های آن را بدانیم، می توانیم متد ()count را به کار ببریم.

بنابراین متد ()count از کلاس RDD شمار عنصرهای درون یک RDD را برگشت می دهد.

تابع ()map از کلاس RDD

تابع ()map یکی از متدهای Transformation است که یک RDD تازه از روی RDD می سازد که تابع بر روی آن اعمال شده است. شیوه کار این تابع بدین گونه است که نام یا تعریف یک تابع را از ورودی دریافت و سپس این تابع را بر روی تک تک عصنرهای درونش اعمال می کند. در کد و شکل زیر می خواهیم اندازه هر خط درون فایلی را بدانیم که در کد بالا، آن را به کمک متد ()textFile خوانده ایم.

در کد و شکل بالا و در پوسته اسکالا، دستور l => l.length تعریف یک تابع بی نام است که به تابع ()map فرستاده شده است. همچنین در پوسته پایتون و به کمک عبارت لامبدا تعریف یک تابع بی نام به ()map فرستاده شده است. هر دو این تابع های بی نام یک ورودی به نام l (حرف L کوچک) دارند و سپس تابع بر روی همه عنصرهای درون RDD اعمال شده و سپس به کمک دستور l.length  اندازه هر عنصر بدست می آید که در اینجا هر عنصر RDD یک خط از فایل متنی است.

تابع ()filter از کلاس RDD

تابع ()filter همانند ()map بر روی همه عنصرهای درون RDD اعمال می شود ولی تابع فرستاده شده به ن یک شرط را اعمال می کند و بر پایه آن شرط است که یک سری از عنصرها در خروجی نخواهند بود. یعنی تنها آن دسته از عنصرها در RDD تازه ساخته شده خواهند بود که شرط تابع فرستاده شده را برآورده می کنند.

تابع ()flatMap از کلاس RDD

تابع ()flatMap یک تابع ورودی را دریافت کرده و سپس به ازای هر عنصر درون RDD یک مجموعه برگشت می دهد. برای نمونه در کد زیر تابع بی نامی فرستاده شده است که به کمک تابع ()split فهرست واژه های هر عنصر یا هر خط فایل متنی بدست می آید. ورودی تابع ()split یک فضای تهی است، بنابرین هر واژه که به فاصله از دیگری جدا شده، برای هر عنصر بدست می آید.

تابع ()union از کلاس RDD

تابع ()union اجتماع دو تا RDD را انجام می دهد. این تابع در ورودی خود دیگر یک تابع دریافت نمی کند بلکه نام یک متغیر نمونه از کلاس RDD را دریافت می کند. گمان کنید ما دو تا RDD از شماره ها داریم که یکی از یک تا ۱۰۰ و دیگری از یک تا ۱۵۰ است، اکنون می خواهیم اجتماع این دو را بدست آوریم. توجه کنید این تابع برای هر منبع دیگری مانن فایل هایی که دارای چندین خط هستند نیز کاربرد دارد.

تابع ()intersection از کلاس RDD

تابع ()intersection اشتراک دو تا RDD را انجام می دهد. این تابع در ورودی خود دیگر یک تابع دریافت نمی کند بلکه نام یک متغیر نمونه از کلاس RDD را دریافت می کند. در کدهای زیر دو فهرست از رشته ها ساخته شده و سپس اشتراک میان آنها بدست می آید. توجه کنید در مثال زیر یکباره خود فهرست ها به متد ()parallelize فرستاده شده است.

تابع ()subtract از کلاس RDD

تابع ()subtract تفاضل دو تا RDD را انجام می دهد. این تابع تفاضل rdd1 – rdd2 را بدست می اورد، به گونه ای که برگشتی آن چیزی است که در rdd1 هست ولی در rdd2 نیست.

distinct از کلاس RDD

distinct عنصرهای تکراری یک RDD را تنها یک بار در RDD تازه نشان می دهد.