Consider the program outline as below running on a Spark cluster of 1 driver and 4 worker nodes with 2 executors per worker node:
Consider the below mutually-exclusive characterisations about the program:
i. Program will not run since RDD transformation operation map() runs on Executors that is referencing a variable train_master which is declared in the Spark driver
ii. Program will run successfully and produce the count of bookings that match for trains present in the train_master
For either of the 2 characterizations, consider the following (one or more) actions you could carry out in order to improve on the characterizations:
- Program will need to be changed to bring the train_master into the Closure for executors to pick it up
- Program will perform more poorly as the number of executors per worker node increases. Broadcast of train_master will need to be used to make it perform better.
- Program will perform more poorly as the number of worker nodes increases (keeping number of executors per worker node constant). Broadcast of train_master will need to be used to make it perform better.
Which of the following combinations of statements are correct?