docs: def _load_cell(args, schema):
    """Implements the BigQuery load magic used to load data from GCS to a table.
  
     The supported syntax is:
  
         %bigquery load -S|--source <source> -D|--destination <table>  <other_args>
  
    Args:
      args: the arguments following '%bigquery load'.
      schema: a JSON schema for the destination table.
    Returns:
      A message about whether the load succeeded or failed.
    """
    name = args['destination']
    table = _get_table(name)
    if not table:
      table = datalab.bigquery.Table(name)
  
    if table.exists():
      if args['mode'] == 'create':
        raise Exception('%s already exists; use --append or --overwrite' % name)
    elif schema:
      table.create(json.loads(schema))
    elif not args['infer']:
      raise Exception(
          'Table does not exist, no schema specified in cell and no --infer flag; cannot load')
  
    # TODO(gram): we should probably try do the schema infer ourselves as BQ doesn't really seem
    # to be able to do it. Alternatively we can drop the --infer argument and force the user
    # to use a pre-existing table or supply a JSON schema.
    csv_options = datalab.bigquery.CSVOptions(delimiter=args['delimiter'],
                                              skip_leading_rows=args['skip'],
                                              allow_jagged_rows=not args['strict'],
                                              quote=args['quote'])
    job = table.load(args['source'],
                     mode=args['mode'],
                     source_format=('CSV' if args['format'] == 'csv' else 'NEWLINE_DELIMITED_JSON'),
                     csv_options=csv_options,
                     ignore_unknown_values=not args['strict'])
    if job.failed:
      raise Exception('Load failed: %s' % str(job.fatal_error))
    elif job.errors:
      raise Exception('Load completed with errors: %s' % str(job.errors))