将数据从Google Cloud Storage上的本地文件加载到BigQuery表

时间:2017-10-17 09:43:57

标签: python google-bigquery google-cloud-storage

这里是从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

请你给我一个提示,这个问题是什么? 感谢。

1 个答案:

答案 0 :(得分:1)

Python脚本需要参数,特别是dataset_name table_namesource。您没有将任何参数传递给脚本。

我注意到您已尝试对这些参数进行硬编码。因此,在这种情况下,如果您不需要它们或将它们标记为可选,请删除cli params。