如何将表单识别器JSON结构转换为SQL表



我有下面的JSON结构,该结构由Azure Form Recognizer API返回。

columnCount键提供实际列数。

我想将Kind=columnHeader的单元格转换为Azure SQL表的Column

Kind=null的其余单元格应转换为Rows

在ADF中实现这一目标的最佳方式是什么?

  1. 在ADF中使用扁平活动
  2. 使用Azure Function中的循环编写转换逻辑并返回CSV字符串
  3. 使用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

或者,您可以保存到存储中,然后在管道中使用复制活动。

相关内容

  • 没有找到相关文章

最新更新