nodes: 0, module; 1, function_definition; 2, function_name:sample_row_keys; 3, parameters; 4, block; 5, identifier:self; 6, expression_statement; 7, expression_statement; 8, expression_statement; 9, return_statement; 10, comment:"""Read a sample of row keys in the table.
  
          For example:
  
          .. literalinclude:: snippets_table.py
              :start-after: [START bigtable_sample_row_keys]
              :end-before: [END bigtable_sample_row_keys]
  
          The returned row keys will delimit contiguous sections of the table of
          approximately equal size, which can be used to break up the data for
          distributed tasks like mapreduces.
  
          The elements in the iterator are a SampleRowKeys response and they have
          the properties ``offset_bytes`` and ``row_key``. They occur in sorted
          order. The table might have contents before the first row key in the
          list and after the last one, but a key containing the empty string
          indicates "end of table" and will be the last response given, if
          present.
  
          .. note::
  
              Row keys in this list may not have ever been written to or read
              from, and users should therefore not make any assumptions about the
              row key structure that are specific to their use case.
  
          The ``offset_bytes`` field on a response indicates the approximate
          total storage space used by all rows in the table which precede
          ``row_key``. Buffering the contents of all rows between two subsequent
          samples would require space roughly equal to the difference in their
          ``offset_bytes`` fields.
  
          :rtype: :class:`~google.cloud.exceptions.GrpcRendezvous`
          :returns: A cancel-able iterator. Can be consumed by calling ``next()``
                    or by casting to a :class:`list` and can be cancelled by
                    calling ``cancel()``.
          """; 11, assignment; 12, assignment; 13, identifier:response_iterator; 14, identifier:data_client; 15, attribute; 16, identifier:response_iterator; 17, call; 18, attribute; 19, identifier:table_data_client; 20, attribute; 21, argument_list; 22, attribute; 23, identifier:_client; 24, identifier:data_client; 25, identifier:sample_row_keys; 26, attribute; 27, keyword_argument; 28, identifier:self; 29, identifier:_instance; 30, identifier:self; 31, identifier:name; 32, identifier:app_profile_id; 33, attribute; 34, identifier:self; 35, identifier:_app_profile_id
code: def sample_row_keys(self):
          """Read a sample of row keys in the table.
  
          For example:
  
          .. literalinclude:: snippets_table.py
              :start-after: [START bigtable_sample_row_keys]
              :end-before: [END bigtable_sample_row_keys]
  
          The returned row keys will delimit contiguous sections of the table of
          approximately equal size, which can be used to break up the data for
          distributed tasks like mapreduces.
  
          The elements in the iterator are a SampleRowKeys response and they have
          the properties ``offset_bytes`` and ``row_key``. They occur in sorted
          order. The table might have contents before the first row key in the
          list and after the last one, but a key containing the empty string
          indicates "end of table" and will be the last response given, if
          present.
  
          .. note::
  
              Row keys in this list may not have ever been written to or read
              from, and users should therefore not make any assumptions about the
              row key structure that are specific to their use case.
  
          The ``offset_bytes`` field on a response indicates the approximate
          total storage space used by all rows in the table which precede
          ``row_key``. Buffering the contents of all rows between two subsequent
          samples would require space roughly equal to the difference in their
          ``offset_bytes`` fields.
  
          :rtype: :class:`~google.cloud.exceptions.GrpcRendezvous`
          :returns: A cancel-able iterator. Can be consumed by calling ``next()``
                    or by casting to a :class:`list` and can be cancelled by
                    calling ``cancel()``.
          """
          data_client = self._instance._client.table_data_client
          response_iterator = data_client.sample_row_keys(
              self.name, app_profile_id=self._app_profile_id
          )
  
          return response_iterator