code: def summaries(self, sc, limit=None):
          
          clauses = copy(self.clauses)
          schema = self.schema
  
          if self.prefix:
              schema = ['prefix'] + schema
              # Add a clause for the prefix that always returns True, in case
              # the output is not filtered at all (so that we do a scan/filter
              # on the prefix directory)
              clauses['prefix'] = lambda x: True
  
          with futures.ThreadPoolExecutor(self.max_concurrency) as executor:
              scanned = self._scan(schema, [self.prefix], clauses, executor)
          keys = sc.parallelize(scanned).flatMap(self.store.list_keys)
          return keys.take(limit) if limit else keys.collect()
docs: Summary of the files contained in the current dataset
  
          Every item in the summary is a dict containing a key name and the corresponding size of
          the key item in bytes, e.g.::
          {'key': 'full/path/to/my/key', 'size': 200}
  
          :param limit: Max number of objects to retrieve
          :return: An iterable of summaries