def create_table(self, dataset, table, schema,
                     expiration_time=None, time_partitioning=False,
                     project_id=None):
        """Create a new table in the dataset.

        Parameters
        ----------
        dataset : str
            The dataset to create the table in
        table : str
            The name of the table to create
        schema : dict
            The table schema        
        expiration_time : int or double, optional
            The expiry time in milliseconds since the epoch.
        time_partitioning : bool, optional
            Create a time partitioning.
        project_id: str, optional
            The project to create the table in

        Returns
        -------
        Union[bool, dict]
            If the table was successfully created, or response from BigQuery
            if swallow_results is set to False
        """
        project_id = self._get_project_id(project_id)

        body = {
            'schema': {'fields': schema},
            'tableReference': {
                'tableId': table,
                'projectId': project_id,
                'datasetId': dataset
            }
        }

        if expiration_time is not None:
            body['expirationTime'] = expiration_time

        if time_partitioning:
            body['timePartitioning'] = {'type': 'DAY'}

        try:
            table = self.bigquery.tables().insert(
                projectId=project_id,
                datasetId=dataset,
                body=body
            ).execute(num_retries=self.num_retries)
            if self.swallow_results:
                return True
            else:
                return table

        except HttpError as e:
            logger.error(('Cannot create table {0}.{1}.{2}\n'
                          'Http Error: {3}').format(project_id, dataset, table, e.content))
            if self.swallow_results:
                return False
            else:
                return {}
Create a new table in the dataset.

        Parameters
        ----------
        dataset : str
            The dataset to create the table in
        table : str
            The name of the table to create
        schema : dict
            The table schema        
        expiration_time : int or double, optional
            The expiry time in milliseconds since the epoch.
        time_partitioning : bool, optional
            Create a time partitioning.
        project_id: str, optional
            The project to create the table in

        Returns
        -------
        Union[bool, dict]
            If the table was successfully created, or response from BigQuery
            if swallow_results is set to False