将数据框上传到Google BigQuery。接收到无效的JSON有效负载。意外的标记

时间:2018-09-03 04:00:02

标签: python google-bigquery google-cloud-storage google-datalayer

我目前正在尝试将数据框上传到Google Big Query中,但始终出现以下错误:

   RequestException: HTTP request failed: Invalid JSON payload received. Unexpected token.
 ": 2013, "abca": NaN, "abcd
                  ^

这是因为Google BQ无法读取“ NaN”值吗?

我有以下代码:

   sample_bucket_name = Context.default().project_id 
   sample_bucket_path = 'gs://' + sample_bucket_name
   sample_bucket_object = sample_bucket_path + '/ABC.txt'

bigquery_dataset_name ='ABC' bigquery_table_name ='ABC'

# Define storage bucket
sample_bucket = storage.Bucket(sample_bucket_name)

# Create storage bucket if it does not exist
if not sample_bucket.exists():
sample_bucket.create()

# Define BigQuery dataset and table
dataset = bq.Dataset(bigquery_dataset_name)
table = bq.Table(bigquery_dataset_name + '.' + 
bigquery_table_name)

# Create BigQuery dataset
if not dataset.exists():
dataset.create()

# Create or overwrite the existing table if it exists
table_schema = bq.Schema.from_data(aas_dataframe)
table.create(schema = table_schema, overwrite = True)

# Write the DataFrame to GCS (Google Cloud Storage)
%storage write --variable simple_dataframe --object 
$sample_bucket_object

# Write the DataFrame to a BigQuery table
table.insert(aas_dataframe)

1 个答案:

答案 0 :(得分:2)

来自JSON spec

  

不允许使用以下语法中无法表示的数值(例如Infinity和NaN)。

因此,NaN不是数字的有效JSON值。