用于排除 Azure 数据工厂中的数组项的集合
Collection to exclude array items in azure data factory
在 Azure 数据工厂中,我们有如下集合:
intersection([1, 2, 3], [101, 2, 1, 10],[6, 8, 1, 2])
whic returns [1, 2]
我在找十字路口对面。对于给定的两个数组,它应该 return 个元素不存在于第一个数组中。
Ex: If we pass two arrays,
Array a: [1,2,3,4,5]
Array b: [1,2,3]
Ouput: [4,5]
一种方法是添加两个 lookup 活动,生成两个数组和第一个数组中项目的 Foreach,如果第二个项目中不存在array 执行另一个 activity.
在 Azure 数据工厂中有没有更好的方法?
谢谢
您是否尝试使用 ADF 映射数据流中的连接转换解决此问题?
intersection
适用于数组。如果您有两个数组(数组是本机 Azure 数据工厂类型),那么我认为 Lookup 无法正常工作,因为它可以处理数据集?遗憾的是 Azure 数据工厂 (ADF v2) 在集合操作方面没有 union
和 intersection
的补充,可能是 complement
或 except
或 minus
.
但是您可以使用 for each
循环和 if
条件来解决这个问题。例如,我有一个带有两个数组参数的 ADF v2 管道,如下所示:
for each
循环遍历a1参数。将项目 属性 设置为:
@pipeline().parameters.a1
在 for each
循环中,添加一个 if
条件:
设置if
条件使用contains函数检查a2参数是否为for each
循环中当前项的存在(即item()
):
@contains(pipeline().parameters.a2,item())
最后添加一个'if false' activity,带有一个Append variable任务,eg
a3
是数组类型的变量。
目前还不需要启动 Spark 集群来解决这个特定问题; )
在 Azure 数据工厂中,我们有如下集合:
intersection([1, 2, 3], [101, 2, 1, 10],[6, 8, 1, 2])
whic returns [1, 2]
我在找十字路口对面。对于给定的两个数组,它应该 return 个元素不存在于第一个数组中。
Ex: If we pass two arrays,
Array a: [1,2,3,4,5]
Array b: [1,2,3]
Ouput: [4,5]
一种方法是添加两个 lookup 活动,生成两个数组和第一个数组中项目的 Foreach,如果第二个项目中不存在array 执行另一个 activity.
在 Azure 数据工厂中有没有更好的方法?
谢谢
您是否尝试使用 ADF 映射数据流中的连接转换解决此问题?
intersection
适用于数组。如果您有两个数组(数组是本机 Azure 数据工厂类型),那么我认为 Lookup 无法正常工作,因为它可以处理数据集?遗憾的是 Azure 数据工厂 (ADF v2) 在集合操作方面没有 union
和 intersection
的补充,可能是 complement
或 except
或 minus
.
但是您可以使用 for each
循环和 if
条件来解决这个问题。例如,我有一个带有两个数组参数的 ADF v2 管道,如下所示:
for each
循环遍历a1参数。将项目 属性 设置为:
@pipeline().parameters.a1
在 for each
循环中,添加一个 if
条件:
设置if
条件使用contains函数检查a2参数是否为for each
循环中当前项的存在(即item()
):
@contains(pipeline().parameters.a2,item())
最后添加一个'if false' activity,带有一个Append variable任务,eg
a3
是数组类型的变量。
目前还不需要启动 Spark 集群来解决这个特定问题; )