这里是从GitHub获取的代码, 将数据从Google Cloud Storage上的本地文件加载到BigQuery表(https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/bigquery/cloud-client/load_data_from_gcs.py)
import argparse
import uuid
import pprint
from google.cloud import bigquery
dataset_name = 'test'
table_name = 'partition1'
source = "gs://a_eu/has/con/c-1489230000-8U3bTN.csv"
format = 'CSV'
def load_data_from_gcs(dataset_name, table_name, source):
bigquery_client = bigquery.Client()
dataset = bigquery_client.dataset(dataset_name)
table = dataset.table(table_name)
job_name = str(uuid.uuid4())
job = bigquery_client.load_table_from_storage(
job_name, table, source)
job.source_format = format
job.begin()
print job.begin
job.result()
print job.result
print('Loaded {} rows into {}:{}.'.format(
job.output_rows, dataset_name, table_name))
if __name__ == '__main__':
parser = argparse.ArgumentParser(
description=__doc__,
formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument('dataset_name')
parser.add_argument('table_name')
parser.add_argument('source')
args = parser.parse_args()
load_data_from_gcs(
args.dataset_name,
args.table_name,
args.source)
load_data_from_gcs(dataset_name, table_name, source)
当我运行它时会出现以下错误:
usage: partition2.py [-h] dataset_name table_name source
partition2.py: error: too few arguments
请你给我一个提示,这个问题是什么? 感谢。
答案 0 :(得分:1)
Python脚本需要参数,特别是dataset_name
table_name
和source
。您没有将任何参数传递给脚本。
我注意到您已尝试对这些参数进行硬编码。因此,在这种情况下,如果您不需要它们或将它们标记为可选,请删除cli params。