Тип поля abc изменился с DATETIME на TIMESTAMP

#pyspark #apache-spark-sql #google-bigquery

# #pyspark #apache-spark-sql #google-bigquery

Вопрос:

Цель: загрузка файла parquet в корзину GCS в BigQuery. У меня есть преобразованный файл parquet с типом данных столбца как «TIMESTAMP» (преобразованный с использованием Apache Spark sql). Тип данных столбца в целевой таблице в BigQuery — «DATETIME». Данные представляют собой «дату и время без часового пояса».

При загрузке этих данных в BigQuery выдается следующая ошибка:

     Caused by: com.google.cloud.spark.bigquery.repackaged.com.google.cloud.bigquery.BigQueryException: 
    Provided Schema does not match Table table_name. Field abc has changed type from DATETIME to TIMESTAMP
        at com.google.cloud.spark.bigquery.repackaged.com.google.cloud.bigquery.Job.reload(Job.java:411)
        at com.google.cloud.spark.bigquery.repackaged.com.google.cloud.bigquery.Job.waitFor(Job.java:248)
        at com.google.cloud.spark.bigquery.BigQueryWriteHelper.finishedJob$lzycompute$1(BigQueryWriteHelper.scala:153)
        at com.google.cloud.spark.bigquery.BigQueryWriteHelper.finishedJob$1(BigQueryWriteHelper.scala:153)
        at com.google.cloud.spark.bigquery.BigQueryWriteHelper.loadDataToBigQuery(BigQueryWriteHelper.scala:155)
        at com.google.cloud.spark.bigquery.BigQueryWriteHelper.writeDataFrameToBigQuery(BigQueryWriteHelper.scala:90)
        ... 31 more


 

Комментарии:

1. предоставляли ли вы схему при загрузке данных в bigquery?

2. Да, @mck. Я попытался предоставить схему, но она по-прежнему выдает ошибку несоответствия схемы table_id=»dataset.table» job_config = bigquery. LoadJobConfig(source_format=bigquery. Формат исходного кода. ПАРКЕТ) схема = [ bigquery. SchemaField(«LAST_UPDATE_DATE», «DATETIME»), bigquery. SchemaField(«OTHER_COL», «STRING»), …. ] job_config.schema = schema uri = «gs://PATH/*.parquet» load_job = client.load_table_from_uri( uri, table_id, job_config=job_config ) # Сделать запрос API.