我有一个进程将消息 ID 读入数组,然后将它们保存到 .csv 文件中,以保留这些 ID 以供以后运行(我需要检查传入文件以查看是否已报告相同的 ID)。
将数组保存到 csv 中不是问题,但是当我从 CSV 将其读回到数组中时,它会附带 ADF 分配的自动标头,因为我的数据集没有标头:
生成的 CSV 文件 您可以在 CSV 文件的内容上方看到,其中“干净 ID”来自最新运行,这意味着它们刚刚保存到文件中,但开头从文件中读取的 ID 中包含“Prop_0:”。随着您从文件中读取的次数越多,记录就会不断附加“Prop_0”,这会进一步加剧。
我想要一种方法将 ID 放入变量中,最好不诉诸 FE 循环,因为它可能会影响性能。
目前我正在将它们加载到数组中,如下所示: 通过查找和设置变量活动加载文件
@activity('LookupLog').output.value
我还尝试了一个简单的技巧,将 output.value 转换为字符串并使用替换函数来删除“Prop_0”部分并将其恢复为数组,但我没有成功:
我还尝试了一个简单的技巧,将 output.value 转换为字符串并使用替换函数来删除“Prop_0”部分并将其恢复为数组,但我没有成功:
您可以使用下面的表达式来获取所需的数组,而无需自动分配标头。
@skip(split(replace(replace(replace(replace(replace(replace(string(activity('Lookup1').output.value),'"',''),'[',''),']',''),'{',''),',',''),'}',''),'Prop_0:'),1)
这是我的示例查找输出数组:
[
{
"Prop_0": "ID00034320240513001901125"
},
{
"Prop_0": "ID12345678908763243744788"
},
{
"Prop_0": "ID65811993776814561728290"
},
{
"Prop_0": "ID24262426242624262426246"
}
]
使用上面的表达式设置数组类型的变量活动。
所需数组:
您可以根据您的要求将上述数组存储到 csv 文件中。