Sam Rockett
Sam Rockett

Reputation: 3205

InvalidResponse error in bigquery load_table_from_file

I am trying to upload a set of csv data into a BigQuery from a BytesIO object, but keep getting an error InvalidResponse: Response headers must contain header 'location'

Here is my code

# self.database = authenticated bigquery.Client

config = bigquery.LoadJobConfig()
config.skip_leading_rows = 1
config.source_format = bigquery.SourceFormat.CSV
config.allow_jagged_rows = True
schema = [
    bigquery.SchemaField("date", "DATE", mode="REQUIRED"),
    bigquery.SchemaField("page_id", "STRING", mode="REQUIRED")
]
# ... Appending a list of bigquery.SchemaField("name", "INTEGER")
config.schema = schema

table = self.get_or_create_table(name, config.schema) # returns TableReference

file = self.clip_data(local_fp, cutoff_date) # returns BytesIO

job = self.database.load_table_from_file(
    file, table,
    num_retries=self.options.num_retries,
    job_id=uuid.uuid4().int,
    job_config=config
) # Error is here.

I have tried searching around but I cannot find any reason or fix for this exception.

InvalidResponse: ('Response headers must contain header', 'location')

Upvotes: 0

Views: 569

Answers (1)

Sam Rockett
Sam Rockett

Reputation: 3205

The problem was caused by not providing a location in the load_table_from_file method.

location="US"

was enough to fix the problem.

Upvotes: 1

Related Questions