code: def _use_aggregation(self, agg, columns=None):
          
          if not columns:
              columns = self._columns
          from pyspark.sql import functions as F
          aggs = map(lambda column: agg(column).alias(column), self._columns)
          aggRdd = self._grouped_spark_sql.agg(*aggs)
          df = DataFrame.from_schema_rdd(aggRdd, self._by)
          return df
docs: Compute the result using the aggregation function provided.
          The aggregation name must also be provided so we can strip of the extra
          name that Spark SQL adds.