我试图用python上传一个本地CSV到googlebigquery
def uploadCsvToGbq(self,table_name):
load_config = {
'destinationTable': {
'projectId': self.project_id,
'datasetId': self.dataset_id,
'tableId': table_name
}
}
load_config['schema'] = {
'fields': [
{'name':'full_name', 'type':'STRING'},
{'name':'age', 'type':'INTEGER'},
]
}
load_config['sourceFormat'] = 'CSV'
upload = MediaFileUpload('sample.csv',
mimetype='application/octet-stream',
# This enables resumable uploads.
resumable=True)
start = time.time()
job_id = 'job_%d' % start
# Create the job.
result = bigquery.jobs.insert(
projectId=self.project_id,
body={
'jobReference': {
'jobId': job_id
},
'configuration': {
'load': load_config
}
},
media_body=upload).execute()
return result
当我运行这个时,它会抛出错误
"NameError: global name 'MediaFileUpload' is not defined"
是否需要任何模块,请帮助。在
在GBQ中上传到csv文件最简单的方法之一是通过熊猫。只是将csv文件导入pandas(pd.read_csv文件()). 从熊猫到GBQ(df.至gbq(完整的“表”标识,项目标识=项目标识)。在
或者可以使用客户端api
^{pr2}$然后在python文件的顶部写下:
^{pr2}$但你要注意你错过了一些括号。最好写:
顺便说一句,您将上载所有CSV行,包括定义列的最上面的一行。在
MediaFileUpload类中的http.py. 见https://google-api-python-client.googlecode.com/hg/docs/epy/apiclient.http.MediaFileUpload-class.html
相关问题 更多 >
编程相关推荐