[英]How to flatten a nested JSON array in Azure Data Factory and output the original JSON object as string?
我的輸入(簡化)來自許多結構如下的 JSON 文件:
{
Type : "Root",
Id: "R1",
Nested : [
{ Type : "NestedType1", Id: "N1", SharedAttribute: 1 },
{ Type : "NestedType1", Id: "N2", SharedAttribute: 2 },
{ Type : "NestedType2", Id: "N3", SharedAttribute: 3, NestedType2SpecificAttribute = "foo" }
]
}
重要的一點是嵌套元素共享某些屬性(例如SharedAttribute
),但它們可以具有各種其他屬性(例如NestedType2SpecificAttribute
)。 我無法捕獲輸入模式中的所有屬性,因為它們會隨時間變化。
我希望轉換嵌套數組,以便它輸出一個包含所有公共/共享屬性的 Kusto 表和一個包含表示嵌套數組項 JSON 的字符串的附加列。
我正在使用 DataFlow 從 Data Lake 讀取這些 JSON 文件。 為了提取數組,我添加了一個“Flatten”格式化程序並選擇按“Nested”展開並使展開根相同。 這給了我預期的數據:
類型 | ID | 共享屬性 |
---|---|---|
嵌套類型 1 | N1 | 1個 |
嵌套類型 1 | 氮氣 | 2個 |
嵌套類型2 | N3 | 3個 |
但我不知道如何添加一個名為“RawJson”的附加列,該列應包含展開數組的源元素,本質上是toString(currentItem)
以產生如下結果:
類型 | ID | 共享屬性 | 生傑森 |
---|---|---|---|
嵌套類型 1 | N1 | 1個 | { 類型:“NestedType1”,ID:“N1”,SharedAttribute:1 } |
嵌套類型 1 | 氮氣 | 2個 | { 類型:“NestedType1”,ID:“N2”,SharedAttribute:2 } |
嵌套類型2 | N3 | 3個 | { 類型:“NestedType2”,ID:“N3”,SharedAttribute:3,NestedType2SpecificAttribute = “foo”} |
添加到@Mark Kromer MSFT ,扁平化轉換后,您將獲得 output 中的對象數組。
帶有表示嵌套數組項 JSON 的字符串的附加列。
然后使用派生列轉換將 output 作為字符串獲取。
展平:
將 Output 展平為對象數組:
派生列:
Output:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.