我刚刚在Big Query中启动了POC。我想知道如何在现有表中更新/修改列定义/模式。
bq mk -t market.cust custid:integer,grp:integer,odate:string bq update -t market.cust custid:string,grp:integer,odate:string
**Error:
spanda2040@instance-3:~/data$ bq update -t market.cust custid:string,grp:integer,odate:string
BigQuery error in update operation: Provided Schema does not match Table arboreal-height-175822:market.cust. Field custid has changed type from INTEGER to STRING**
表架构:
上次修改的架构总行数总字节数到期时间分区标签
02 Oct 13:38:29 | - custid:整数0 0 | - grp:整数 | - odate:string
答案 0 :(得分:0)
运行一个查询,用现有表替换现有表,并根据需要转换数据:
#standardSQL
SELECT a, b, c, CAST(d as INT64) AS d
FROM `p.t.d`
根据评论更新 - 如果我想将整数更改为字符串:
#standardSQL
SELECT a, b, c, CAST(d as STRING) AS d
FROM `p.t.d`
答案 1 :(得分:0)
使用SELECT会产生一些问题,因为您需要扫描整个表格
以下是超级简单的方法,花费$ 0.00
我这样做是为了进行理智检查,它可以作为魅力
当你对这种方法感到满意时 - 你甚至可以加载到同一个表中 - 使用WRITE_TRUNCATE for writeDisposition属性