Answer – A
This is mentioned in the AWS Documentation
########
Submit a Streaming Step
This section covers the basics of submitting a Streaming step to a cluster. A Streaming application reads input from standard input and then runs a script or executable (called a mapper) against each input. The result from each of the inputs is saved locally, typically on a Hadoop Distributed File System (HDFS) partition. After all the input is processed by the mapper, a second script or executable (called a reducer) processes the mapper results. The results from the reducer are sent to standard output. You can chain together a series of Streaming steps, where the output of one step becomes the input of another step.
The mapper and the reducer can each be referenced as a file or you can supply a Java class. You can implement the mapper and reducer in any of the supported languages, including Ruby, Perl, Python, PHP, or Bash.
########
Option B is incorrect since this is used if you want a custom image for the nodes in your cluster
Options C and D are incorrect since the ideal approach is to use the inbuilt step functionality
For more information on creating a streaming step, please refer to the below URL
https://docs.aws.amazon.com/emr/latest/ReleaseGuide/CLI_CreateStreaming.html