Kev*_* S. 5 python csv google-bigquery
假设我有一个包含现有数据的表,其架构如下:
{ 'name' : 'Field1', 'type' : 'STRING' },
{ 'name' : 'Field2', 'type' : 'STRING' }
Run Code Online (Sandbox Code Playgroud)
我们的数据是 CSV:
Field1,Field2
Value1,Value2
...
Run Code Online (Sandbox Code Playgroud)
我们通过创建新作业来加载数据,直接从 Google Cloud Storage (GCS) 加载 CSV。我们的数据文件现在有一个额外的列和不同的排序,这样数据现在是结构化的:
Field1,Field3,Field2
Value1,Value3,Value2
...
Run Code Online (Sandbox Code Playgroud)
有没有办法在加载作业中指定我们要跳过第二列,而只加载第 1 列和第 3 列(名为 Field1 和 Field2)?
我正在使用 Python API,例如 service.jobs().insert(job_body)
基本上我想做这样的事情:
job_body = {
'projectId': projectId,
'configuration': {
'load': {
'sourceUris': [sourceCSV],
'schema': {
'fields': [
{
'name': 'Field1',
'type': 'STRING'
},
{ # this would be the skipped field
'name': None
'skip': True
},
{
'name': 'Field2',
'type': 'String'
},
]
},
'destinationTable': {
'projectId': projectId,
'datasetId': datasetId,
'tableId': targetTableId
},
}
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
目前还不可能做到这一点,但这可能是一个有趣的功能请求。请随意将其添加到https://code.google.com/p/google-bigquery/issues/list。
与此同时,我会进行两步导入:
| 归档时间: |
|
| 查看次数: |
4628 次 |
| 最近记录: |