在BigQuery中更改记录列的类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在BigQuery中更改记录列的类型相关的知识,希望对你有一定的参考价值。

我在BigQuery中有一个带有RECORD类型列的表。此RECORD列只是一个RECORD,而不是REPEATED列。我想更改记录中元素之一的类型。我的记录定义为:

product_action                RECORD NULLABLE
product_action.action_type    INTEGER NULLABLE
product_action.checkout_step  INTEGER NULLABLE

我想将ACTION_TYPE的类型从INTEGER更改为STRING,但我不知道该怎么做。我知道这涉及选择并转换为新表,但是我不知道正确的语法。这里有一个非常相似的问题,带有答案How to change the col type of a BigQuery repeated record但是它仅适用于REPEATED记录,并且无法将其仅更改为RECORD(不是REPEATED)。

谢谢!

答案

终于可以使用了

SELECT
  * REPLACE   
      ( 
        (
            SELECT
            AS STRUCT product_action.* EXCEPT (action_type),
            CAST(product_action.action_type AS STRING) AS action_type
         ) AS product_action
      ),
FROM
  `mytable`

以上是关于在BigQuery中更改记录列的类型的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 BigQuery 中列的数据类型

在 C# 中插入具有重复记录列的 BigQuery 行

如何更改 BigQuery 重复记录的 col 类型

BigQuery:如何在重复记录中插入新值?

如果使用 where 条件更改了列的数据类型,如何查找列的记录

BigQuery 定价:记录列的查询数据大小(成本)计算