【问题标题】:Create table schema and load data in bigquery table using source google drive使用源谷歌驱动器创建表架构并在 bigquery 表中加载数据
【发布时间】:2020-03-10 16:14:14
【问题描述】:

我正在使用 google drive 作为源和 google sheet 作为格式来创建表格。

我已选择“驱动器”作为创建表的值。对于文件格式,我选择了 Google Sheet。

我还选择了自动检测架构和输入参数。 它创建了表格,但工作表的第一行也作为数据而不是表格字段加载。

请告诉我我需要做什么才能将工作表的第一行作为表格列名而不是数据。

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    如果您可以包含您尝试上传的文件的前几行的屏幕截图,至少可以查看其中的数据类型,那将会很有帮助。如果在使用架构自动检测时两者具有相似的数据类型,BigQuery 至少在组成此响应时无法区分列名和数据行。例如,如果您的数据如下所示:

    headerA, headerB
    row1a, row1b
    row2a, row2b
    row3a, row3b
    

    BigQuery 无法检测列名(至少单独使用 UI 选项自动检测),因为所有标题和行数据都是字符串。 “要跳过的标题行”选项对此无济于事。 但是,当您对不同的列有不同的数据类型时,架构自动检测应该能够检测并区分列名和数据行。

    【讨论】:

    • 我可以确认我已经能够重现此行为。跳过第一行(如另一个答案中所提议的)是手动添加架构的一个很好的补充,以避免将归档行作为数据包含在内,但不保证在使用自动检测时它会将该行检测为字段名称。
    【解决方案2】:

    您可以在高级选项中选择跳过标题行。只需将 1 作为要跳过的行数(第一行是标题所在的位置)。它将跳过第一行并将其用作标题的值。

    【讨论】:

    • 但这会使跳过的行成为列的标题吗?我认为这只是跳过了指定的行数,而问题询问将第一行值分配为列名。
    • 它确实使用您跳过的行来创建标题
    • 您能否在我在回复中提供的示例文件上试一试(字符串类型的所有字段/标题)?我刚试了一下,不管你有没有使用跳过选项,它都无法检测到标题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多