def METHOD_NAME(argv=None):
    """
    This funciton parses the command line arguments and runs the Beam Pipeline.
    Args:
        argv: list containing the commandline arguments for this call of the script.
    """
    parser = argparse.ArgumentParser()
    # Here we add some specific command line arguments we expect.
    # Specifically we have the input file to load and the output table to
    # This is the final stage of the pipeline, where we define the destination
    # of the data.  In this case we are writing to BigQuery.
    parser.add_argument(
        '--input',
        dest='input',
        required=False,
        help='Input file to read.  This can be a local file or '
        'a file in a Google Storage Bucket. However the image '
        'references shouldbe gcs links or web urls NOT local files',
        # This example file contains a total of only 3 lines specifying 3 image files in gcs.
        default=INPUT_FILE)
    # This defaults to the ImageLabelFlow dataset in my bigquery project.  You'll have
    # to create this dataset yourself using this command:
    # bq mk ImageLabelFlow
    parser.add_argument('--bq_table',
                        dest='output',
                        required=False,
                        help='Output BQ table to write results to.',
                        default=BQ_TABLE)
    # Parse arguments from the command line.
    known_args, pipeline_args = parser.parse_known_args(argv)
    # Initiate the pipeline using the pipeline arguments passed in from the
    # command line.  This includes information including where Dataflow should
    # store temp files, and what the project id is.
    p = beam.Pipeline(options=PipelineOptions(pipeline_args))
    (p
     # Read the file.  This is the source of the pipeline.  All further
     # processing starts with lines read from the file.  We use the input
     # argument from the command line.
     | 'Read from a File' >> beam.io.ReadFromText(known_args.input)
     # This stage of the pipeline translates from a CSV file single row
     # input specifying a gcs file, to a dictionary object consumable by BigQuery.
     # It refers to a function we have written that creates a row containing the image location
     # and the labels from the vision api.  This function will
     # be run in parallel on different workers using input from the
     # previous stage of the pipeline.
     | 'Vision API label_annotation wrapper' >> beam.ParDo(ImageLabeler())
     # This stage writes the data to the BigQuery table.
     | 'Write to BigQuery' >> beam.io.gcp.bigquery.WriteToBigQuery(
         # The table name is a required argument for the WriteToBigQuery io transform.
         # In this case we use the value passed in from the command line.
         known_args.output,
         # Here we use the simplest way of defining a schema:
         # fieldName:fieldType
         schema='image_location:STRING,labels:STRING',
         # Creates the table in BigQuery if it does not yet exist.
         create_disposition=beam.io.BigQueryDisposition.CREATE_IF_NEEDED,
         # Append data to the output bq table.
         write_disposition=beam.io.BigQueryDisposition.WRITE_APPEND,
         batch_size=500))
    p.METHOD_NAME().wait_until_finish()