【问题标题】:Loading Google Sheets into Big Query将 Google 表格加载到 Bigquery
【发布时间】:2016-11-16 18:46:53
【问题描述】:

我已经能够按照此处列出的说明将谷歌表格加载到大查询中。

https://cloud.google.com/blog/big-data/2016/05/bigquery-integrates-with-google-drive

唯一让我难过的是我必须向架构中添加字段。 所以,假设我在 Google 表格中有 100 列,所有这些都需要加载到 BQ 中。这是否意味着我必须手动输入 100 个模式名称并选择它们的字段类型?我已经做了一个,但我认为有一种方法可以将 Google 表格中的所有内容自动加载到 BQ 中。

有人能指出我正确的方向吗?

谢谢!

【问题讨论】:

    标签: google-sheets google-bigquery


    【解决方案1】:

    您必须提供架构!

    那么,如何使用常规电子表格功能并仅根据表格数据中的列标题生成架构。您可以首先使用最常用的数据类型,然后手动“修复”具有不同类型的字段。这可以作为一个对你有用的脚本来完成,然后你用它来提供模式

    另一方面,您可以查看Table definitions based on Google Sheets source files。它可能会有所帮助

    【讨论】:

      【解决方案2】:

      您可以为您的Google Sheets 文件创建table definition(不过您必须使用命令行界面)。默认情况下,它会尽最大努力从文件中auto detect 表的架构。

      【讨论】:

        【解决方案3】:
        import pygsheets
        from pandas_gbq import gbq
        
        
        def load_data_from_google_sheet_to_BQ():
                spread_sheet_name = "spread_sheet_name"
                worksheet_name = "worksheet_name"
                table_id = "{0}.{1}".format('Dataset_name', 'table_name')
                gs = pygsheets.authorize(service_file=service_file_name)
                sh = gs.open(spread_sheet_name)
                wks = sh.worksheet_by_title(worksheet_name)
                gs_data = wks.get_as_df()
                gs_data.COLUMN1 = gs_data.COLUMN1.astype(str)
                gs_data.COLUMN2 = gs_data.COLUMN2.astype(str).str.encode('utf-8', errors='strict')
                gs_data.COLUMN3 = gs_data.COLUMN3.astype(str).str.encode('utf-8', errors='strict')
                gs_data.COLUMN4 = gs_data.COLUMN4.astype(str)
                gs_data.COLUMN5 = gs_data.COLUMN5.astype(str)
                gs_data.COLUMN6 = gs_data.COLUMN6.astype(str)
        
                gs_data = gs_data[['COLUMN1', 'COLUMN2', 'COLUMN3', 'COLUMN4', 'COLUMN5', 'COLUMN6']]
                gbq.to_gbq(gs_data, table_id, project_id, if_exists='replace')
        
        
        
        load_data_from_google_sheet_to_BQ()
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-05
          • 1970-01-01
          相关资源
          最近更新 更多