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 参考,但我不知道如何在应用程序脚本中实现 您只需在属于configuration
的load
对象中将其设置为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