如何设置表的架构以在 Google App Scripts 中自动检测从 Google Cloud Storage 获取数据?

Posted

技术标签:

【中文标题】如何设置表的架构以在 Google App Scripts 中自动检测从 Google Cloud Storage 获取数据?【英文标题】:How to set the schema for a table to autodetect in Google App Scripts fetching data from Google Cloud Storage? 【发布时间】:2018-03-20 17:12:32 【问题描述】:

我有一个 Google 应用脚本,它通过从 Google Cloud Storage 获取更新的数据来自动更新 Bigquery 中的表。

function loadCloudStorageFileToBigQuery(source,ProjectId, datasetId, tableId, schema)   
    try

        source="xxxxx";
        ProjectId="xxxxxx";
        datasetId="xxxxxx";
        tableId="xxxxxxx";
        schema="configuration.load.autodetect":'true';

        var tableReference = BigQuery.newTableReference();
        tableReference.setProjectId(ProjectId);
        tableReference.setDatasetId(datasetId);
        tableReference.setTableId(tableId);

        var load = BigQuery.newJobConfigurationLoad();
        load.setDestinationTable(tableReference);
        load.setSourceUris([source]);
        load.setSourceFormat('CSV');
        load.setMaxBadRecords(0);
        load.setWriteDisposition('WRITE_APPEND');

        var configuration = BigQuery.newJobConfiguration();
        configuration.setLoad(load);

        var newJob = BigQuery.newJob();
        newJob.setConfiguration(configuration);

        var job = BigQuery.Jobs.insert(newJob, ProjectId);

    catch(err) 
        Logger.log('Table upload error: %s', err);  
     

脚本似乎工作正常,因为我可以在大查询中看到作业历史记录中的错误。该错误表示未定义架构。我想将架构设置为自动检测。有人可以建议我需要在脚本中进行哪些更改吗?

【问题讨论】:

【参考方案1】:

添加“load.setAutodetect(true);”

更多详情: https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs#configuration.load

【讨论】:

以上是关于如何设置表的架构以在 Google App Scripts 中自动检测从 Google Cloud Storage 获取数据?的主要内容,如果未能解决你的问题,请参考以下文章

从 Google App Engine 中的数据存储区获取实体以在 iOS 应用中使用

当一个人创建一个新模型时,应该在哪里放置代码以在 Google App Engine/Django 上自动增加一个分片计数器?

通过配置变量包含Google的gtag分析

如何通过 Terraform 管理 BigQuery 表的架构更改

设置 TensorBoard 以在 Google Colab 中为 TensorFlow 对象检测模型运行 eval.py 作业

Google Play 控制台上缺少 Android Instant App 统计信息