集合以排除Azure数据工厂中的数组项 [英] Collection to exclude array items in azure data factory
本文介绍了集合以排除Azure数据工厂中的数组项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在Azure数据工厂中,我们有如下集合:
intersection([1, 2, 3], [101, 2, 1, 10],[6, 8, 1, 2])
哪个返回[1, 2]
我在找十字路口的对面。对于给定的两个数组,它应返回第一个数组中不存在的元素。
Ex: If we pass two arrays,
Array a: [1,2,3,4,5]
Array b: [1,2,3]
Ouput: [4,5]
一种方法是添加两个查找活动,结果是两个数组和Foreach第一个数组中的项,如果第二个项数组中不存在,则执行另一个活动。
在Azure数据工厂中有没有更好的方法?
谢谢
推荐答案
intersection
使用数组。如果你有两个数组(数组是原生的Azure数据工厂类型),那么我不认为Lookup会像处理数据集一样工作?很遗憾,Azure Data Factory(ADF V2)在可能是complement
、except
或minus
的集合操作方面没有对union
和intersection
的补充。
for each
循环和if
条件解决此问题。例如,我有一个带有两个数组参数的ADF v2管道:
for each
循环遍历a1参数。将Items属性设置为:
@pipeline().parameters.a1
在for each
循环中,添加if
条件:
设置if
条件以使用CONTAINS函数检查for each
循环(即item()
)中当前项的存在的a2参数:
@contains(pipeline().parameters.a2,item())
最后添加一个带有追加变量任务的‘If False’活动,例如
a3
是数组类型的变量。
现在还不需要启动Spark集群来解决此特定问题;)
这篇关于集合以排除Azure数据工厂中的数组项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文