Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 将数据从存储器加载到bigquery时分析数据类型时出错_Google Cloud Platform_Google Bigquery - Fatal编程技术网

Google cloud platform 将数据从存储器加载到bigquery时分析数据类型时出错

Google cloud platform 将数据从存储器加载到bigquery时分析数据类型时出错,google-cloud-platform,google-bigquery,Google Cloud Platform,Google Bigquery,我有一个大型bigquery表,其模式如下: id:integer,age:integer,name:string,id2:integer,grade1:float,....,grade100:float 该表是从google存储中加载的,现在我尝试附加另一个文件,该文件具有相同的列数和“相同类型”的列。问题是这两个文件都是使用同一个脚本生成的,但第二个文件中应该是整数的列似乎是浮点。因此,我尝试附加的第二个csv文件的模式是: **id:float**,**age:float**,name:

我有一个大型bigquery表,其模式如下:

id:integer,age:integer,name:string,id2:integer,grade1:float,....,grade100:float
该表是从google存储中加载的,现在我尝试附加另一个文件,该文件具有相同的列数和“相同类型”的列。问题是这两个文件都是使用同一个脚本生成的,但第二个文件中应该是整数的列似乎是浮点。因此,我尝试附加的第二个csv文件的模式是:

**id:float**,**age:float**,name:string,**id2:float**,grade1:float,....,grade100:float
这两个文件的示例如下: BQ表中的文件:

id age name id2  grade1 ..... grade100
1  22  John  3    6.2   .....  6.1
我试图附加的文件中的数据如下所示:

id    age   name  id2  grade1 ..... grade100
3.0   22.0  Peter 5.0    6.5   .....  6.3
我如何“强制”或强制转换存储中文件的第二种数据类型,以匹配我在BQ中已有的表的数据类型,从而在年龄、id等方面不存在冲突

注意:这不是实际的模式。没有年龄或等级,但这是一个更简单的方式来表示我的问题

编辑:我没有BigQuery中的第二个文件,这就是我要做的。我将遵循以下步骤:

  • 单击数据集
  • 点击“创建表格”
  • 选择我感兴趣的bucket/文件夹/文件
  • 转到高级选项并选择“附加到表”选项

  • 这是正确的方法吗?

    你有。字面上看
    CAST()

    例如,
    选择id、年龄、姓名、演员(id2为FLOAT64).


    铸造转换的详细信息可在

    中找到,但如何转换?我的意思是,我知道我可以使用
    CAST()
    ,但我试图附加的文件在云存储中。是否可以从BigQuery对Google存储中的文件执行
    SELECT
    查询?对于负载情况,您可以指定最符合的显式模式(例如,使用float64而不是integer64)。或者,如果要向表中追加数据,则加载将使用目标表的架构。或者,加载到临时表,然后
    创建表。。。如SELECT…
    所示,但由于每次加载都必须运行额外的查询,因此效率较低(且可能成本较高)。