1

我有一个更新策略,它填充动态类型的目标表列。用于填充动态列的更新策略逻辑如下:-

project target_calculated_column = pack("key1",src_col1,
                                        "key2",src_col2,
                                        "key3",src_col3,
                                          .
                                          .
                                        "keyN",src_colN)

src_col1,src_col2,...,src_colN 列是来自特定表的固定数量的列,该表是更新策略的源。这些列具有各种数据类型,其中大部分是字符串,而其他列是整数。这里的主要内容是这些列可能包含也可能不包含输入行的任何值。这意味着对于整数列,值可能为空,或者在字符串列的情况下,它可能为空。现在这里的问题是更新策略函数显然是事先编写的,因此它无法知道哪些行将包含空值或空白等。这只有在更新策略开始运行时才会知道。因此,当更新策略开始运行时,我们最终会在目标列 target_calculated_column 中得到以下类型的数据,显示来自目标行的一个示例值:-

{
  "key1":"sometext",
  "key2":30,
  "key3":null,
  "key5":"hello",
  "key6":"",
  "key7":112,
  "key8":"",
  "key9":"",
  .
  .
  "keyN":10
}

这说明了问题。我不想将键值对保留为空的 target_calculated_column 的一部分(空值、空白等)。我认为我要求的是一个pack()可以忽略具有空值的键值对的条件版本,但我认为不存在这样的选项。有没有办法我可以后处理 target_calculated_column 以便我可以消除这样的键值对?基本上在这个例子的情况下,我应该得到以下输出: -

   {
      "key1":"sometext",
      "key2":30,
      "key5":"hello",
      "key7":112,
      .
      .
      "keyN":10
    }
4

1 回答 1

3

pack_all([ ignore_null_empty ])函数允许您忽略空值/空值。如果要删除某些列,可以使用bag_remove_keys()函数。pack()函数本身不提供此选项。

于 2022-01-03T20:59:09.870 回答