我有下面的JSON结构,该结构由Azure Form Recognizer API返回。
columnCount键提供实际列数。
我想将Kind=columnHeader的单元格转换为Azure SQL表的Column
Kind=null的其余单元格应转换为Rows
在ADF中实现这一目标的最佳方式是什么?
- 在ADF中使用扁平活动
- 使用Azure Function中的循环编写转换逻辑并返回CSV字符串
- 使用JUST这样的库。NET内部Azure函数
注意:从表单识别器返回的行数和列数将是动态
{"rowCount":9,"columnCount":2."细胞":[{"种类":"columnHeader";,"rowIndex":0,"columnIndex":0,"rowSpan":1."columnSpan":1."内容":"列A";,"边界区域":[{"pageNumber":5."boundingBox":[4.4461,7.7151,3.7924,7.7151,3.7924,7.968,0.4461,7.968]}],"跨度":[{"偏移":6640,"长度":9}]},{"种类":"columnHeader";,"rowIndex":0,"columnIndex":1."rowSpan":1."columnSpan":1."内容":"列B";,"边界区域":[{"pageNumber":5."boundingBox":[3.7924,7.7151,799年7月7日,7.7151,799年7月7日,7.968,3.7924,7.968]}],"跨度":[{"偏移":6650中,"长度":9}]},{"rowIndex":1."columnIndex":0,"rowSpan":1."columnSpan":1."内容":"Cell1Value";,"边界区域":[{"pageNumber":5."boundingBox":[4.4461,7.968,3.7924,7.968,3.7924,8.195,0.4461,8.195]}],"跨度":[{"偏移":6660,"长度":18}]},{"rowIndex":1."columnIndex":1."rowSpan":1."columnSpan":1."内容":"Cell2Value";,"边界区域":[{"pageNumber":5."boundingBox":[3.7924,7.968,799年7月7日,7.968,799年7月7日,8.195,3.7924,8.195]}],"跨度":[{"偏移":6679,"长度":18}]},]}
输出应该是这样的
第A列,第B列
Cell1值,Cell2值
这是一个对我有用的例子,它是通过使用压平和聚合转换实现的。
展开时,按"单元格"展开。
压扁
FlattenDataPreview
然后,在聚合转换中,使用以下表达式按rowIndex分组并按文本聚合:
replace(trim(trim((toString(collect(text((,'['(,']'(,"","(
聚合数据预览
如果您想继续使用数据流来设置表,可以创建派生列并将SQL设置为接收器。
TableDataPreview
或者,您可以保存到存储中,然后在管道中使用复制活动。