【问题标题】:Is it possible to return Two dimensional JSON Array in BigQuery function是否可以在 BigQuery 函数中返回二维 JSON 数组
【发布时间】:2022-11-04 23:17:03
【问题描述】:

我正在尝试在 BigQuery 函数中形成以下解决方案。

我的数据格式:

{
  "column1" : "test1",
  "column2" : "test2", 
  "column3" ": [{'field1': 'a', 'field2': 'b'}, {'field1': 'c', 'field2': 'd'}]
}

期待解决方案:

{
  "column1" : "test1",
  "column2" : "test2", 
  "column3" ": [['a', 'b'], ['c', 'd']]
}

基于以下解决方案,我实现了一个 Javascript 函数来形成预期的数组有效负载。但是,使用 RETURN 类型我无法配置 ARRAY<ARRAY>

实现功能:

CREATE TEMP FUNCTION JsonToItems(items ARRAY<STRUCT<a STRING, b STRING>>)
RETURNS ARRAY<ARRAY<STRING>> (<--- Not able to return this)
LANGUAGE js AS r"""
  console.log(items);
  var arr_1 = [];
    for (i = 0; i < items.length; i++) {
        var arr_2 = [];
        var keys = Object.keys(items[i]);
        for (var j = 0; j < keys.length; j++) {
            arr_2.push(items[i][keys[j]]);
        }
        arr_1.push(arr_2);
    }
  
  return arr_1;
""";

如果有人对如何处理上述解决方案有任何想法,请告诉我.. 谢谢

https://medium.com/google-cloud/transforming-nested-jsons-into-an-array-of-structs-in-bigquery-514988506384

【问题讨论】:

  • 不幸的是,BigQuery 不支持数组数组。
  • 嗨@Ravindra Bakkamanthala,BigQuery 不支持数组数组,但您可以创建一个结构数组,如documentation 中所述。让我知道这是否有帮助。
  • 感谢@Jaytiger @Shipra Sarkar 的投入。我已经实现了将 temp 函数从 return arr_1 更改为 return JSON.stringify(arr_1) 并更改为 RETURNS STRING 解决了我的问题。
  • 嗨@RavindraBakkamanthala,你能发布你的答案,以便它也能帮助社区成员进行研究吗?

标签: google-bigquery


【解决方案1】:

我已经解决了返回 JSON 字符串的问题。

CREATE TEMP FUNCTION JsonToItems(items ARRAY<STRUCT<a STRING, b STRING>>)
RETURNS STRING
LANGUAGE js AS r"""
  var arr_1 = [];
    for (i = 0; i < items.length; i++) {
        var arr_2 = [];
        var keys = Object.keys(items[i]);
        for (var j = 0; j < keys.length; j++) {
            arr_2.push(items[i][keys[j]]);
        }
        arr_1.push(arr_2);
    }
  
  return JSON.stringify(arr_1);
""";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    相关资源
    最近更新 更多