code: def create(self, table_id, schema):
          
          from google.cloud.bigquery import SchemaField
          from google.cloud.bigquery import Table
  
          if self.exists(table_id):
              raise TableCreationError(
                  "Table {0} already " "exists".format(table_id)
              )
  
          if not _Dataset(self.project_id, credentials=self.credentials).exists(
              self.dataset_id
          ):
              _Dataset(
                  self.project_id,
                  credentials=self.credentials,
                  location=self.location,
              ).create(self.dataset_id)
  
          table_ref = self.client.dataset(self.dataset_id).table(table_id)
          table = Table(table_ref)
  
          # Manually create the schema objects, adding NULLABLE mode
          # as a workaround for
          # https://github.com/GoogleCloudPlatform/google-cloud-python/issues/4456
          for field in schema["fields"]:
              if "mode" not in field:
                  field["mode"] = "NULLABLE"
  
          table.schema = [
              SchemaField.from_api_repr(field) for field in schema["fields"]
          ]
  
          try:
              self.client.create_table(table)
          except self.http_error as ex:
              self.process_http_error(ex)
docs: Create a table in Google BigQuery given a table and schema
  
          Parameters
          ----------
          table : str
              Name of table to be written
          schema : str
              Use the generate_bq_schema to generate your table schema from a
              dataframe.