transformations let' talk about transformations first transformations are exactly what they sound like it' way of taking an rdd and transforming every row in that rdd to new valuebased on function you provide let' look at some of those functionsmap(and flatmap()nbq and gmbunbq are the functions you'll see the most often both of these will take any function that you can dream upthat will takeas inputa row of an rddand it will output transformed row for exampleyou might take raw input from csv fileand your nbq operation might take that input and break it up into individual fields based on the comma delimiterand return back python list that has that data in more structured format that you can perform further processing on you can chain map operations togetherso the output of one nbq might end up creating new rdd that you then do another transformation onand so onand so forth againthe key isspark can distribute those transformations across the clusterso it might take part of your rdd and transform it on one machineand another part of your rdd and transform it on another like saidnbq and gmbunbq are the most common transformations you'll see the only difference is that nbq will only allow you to output one value for every rowwhereas gmbunbq will let you actually output multiple new rows for given row so you can actually create larger rdd or smaller rdd than you started with using gmbunbqfilter()gjmufs can be used if what you want to do is just create boolean function that says "should this row be preserved or notyes or no distinct()ejtujodu is less commonly used transformation that will only return back distinct values within your rdd sample()this function lets you take random sample from your rdd union()intersection()subtract(and cartesian()you can perform intersection operations like unionintersectionsubtractor even produce every cartesian combination that exists within an rdd