我有一个更新策略,它填充动态类型的目标表列。用于填充动态列的更新策略逻辑如下:-
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
}