Azure data factory 集合以排除azure数据工厂中的阵列项

Azure data factory 集合以排除azure数据工厂中的阵列项,azure-data-factory,azure-data-factory-2,Azure Data Factory,Azure Data Factory 2,在Azure data factory中,我们有如下集合: intersection([1, 2, 3], [101, 2, 1, 10],[6, 8, 1, 2]) whic返回[1,2] 我在找十字路口的对面。对于给定的两个数组,它应该返回第一个数组中不存在的元素 Ex: If we pass two arrays, Array a: [1,2,3,4,5] Array b: [1,2,3] Ouput: [4,5] 一种方法是添加两个查找活动,生成两个数组,并在第一

在Azure data factory中,我们有如下集合:

intersection([1, 2, 3], [101, 2, 1, 10],[6, 8, 1, 2])
whic返回
[1,2]

我在找十字路口的对面。对于给定的两个数组,它应该返回第一个数组中不存在的元素

Ex: If we pass two arrays, 
    Array a: [1,2,3,4,5]
    Array b: [1,2,3]

Ouput: [4,5]
一种方法是添加两个查找活动,生成两个数组,并在第一个数组中为每个项目添加查找,如果在第二个项目数组中不存在,则执行另一个活动

在Azure数据工厂中有更好的方法吗


谢谢

您是否尝试通过ADF映射数据流中的连接转换来解决此问题?

交叉点可用于阵列。如果您有两个数组(数组是本机Azure数据工厂类型),那么我认为查找不会像处理数据集那样工作?遗憾的是,Azure数据工厂(ADF v2)在集合操作方面没有对
联合
交集
的补码,这些集合操作可能是
补码
,除了

但是,您可以为每个
循环使用
,如果
条件,则使用
来解决此问题。例如,我有一个ADF v2管道,它有两个数组参数,如下所示:

每个
循环的
循环通过a1参数。将Items属性设置为:

@pipeline().parameters.a1
在每个
循环的
中,添加
if
条件:

设置
if
条件,以使用contains函数检查a2参数,查看每个
循环(即
item()
)中当前项的存在情况:

最后添加一个带有附加变量任务的“if false”活动,例如

a3
是数组类型的变量


现在还不需要启动火花簇来解决这个特殊问题;)

数据流仍处于预览阶段。我的数据是SQL MI格式的,目前在数据流中不可用。如果数据是SQL格式的,您能用该格式描述吗?它是在一个表中,还是全部在一列中,还是多列中?从您的描述中还不太清楚。我们很快就会将SQL MI引入数据流本机。。。同时,您能否使用复制活动将您的SQL MI数据作为拼花放入Blob存储区,以便在数据流中访问它?Parquet将维护数据的模式。我用100个项目对此进行了测试,它似乎工作正常。如果我已经在管道中进行了计算(比如SQL、Batch或Databricks),我会尝试将其传递给其他计算机。数据流中有“联合”功能,这能解决问题吗?
@contains(pipeline().parameters.a2,item())