BigQuery - 通过应用脚本上传带有模式自动检测的 csv

Posted

技术标签:

【中文标题】BigQuery - 通过应用脚本上传带有模式自动检测的 csv【英文标题】:BigQuery - upload csv with schema autodetect via apps script 【发布时间】:2017-05-21 12:41:30 【问题描述】:

我需要将数据从云端硬盘上传到 BigQuery。 我找到了这两个解释(Upload CSV,BQ Jobs),

但是,我不想每次都重新定义架构。在手动上传中,您可以检查“自动检测”,但在脚本中我找不到如何操作。

谢谢

【问题讨论】:

【参考方案1】:

使用jobs.load API,您正在寻找configuration.load.autodetect 选项。 Apps 脚本应该有一个类似命名的设置。

【讨论】:

正确,这就是我要找的。我找到了 API 参考,但我不知道如何在应用程序脚本中实现 您只需在属于configurationload 对象中将其设置为true,例如在loading CSV 示例中并从table 对象中省略schema 嗨@Ilja,欢迎来到 ***!如果答案对您有帮助并解决了您的问题,请考虑接受并投票:)!【参考方案2】:

谢谢艾略特。

这是更新后的请求:

var file = DriveApp.getFileById(csvFileId);

var data = file.getBlob().setContentType('application/octet-stream');

// Create the data upload job.
var job = 
        configuration: 
          load: 
            destinationTable: 
              projectId: projectId,
              datasetId: datasetId,
              tableId: tableId
              ,
            skipLeadingRows: 1,
            autodetect: true
                 
              
           ;

job = BigQuery.Jobs.insert(job, projectId, data);

【讨论】:

以上是关于BigQuery - 通过应用脚本上传带有模式自动检测的 csv的主要内容,如果未能解决你的问题,请参考以下文章

使用带有自动模式检索的 LoadJobs 时如何处理 Avro 到 BigQuery 的类型转换

BigQuery SQL 通过应用程序脚本按 DATE 过滤

无法使用 Google App Script 将解压缩的 csv 上传到具有更大数据的 BigQuery

将 Google Apps 脚本中的 CSV 文件上传到 BigQuery 表 - 行中的恶意逗号

从python上传到Bigquery

应用脚本:对于 bigquery 的响应太大