我第一次使用 ADF 从 CSV 中获取数据并在 JSON 中详细说明它们
我的结构如下:
|father |date |record1 |record2 |...|recordn |
|father |date2|record1A|record2A|...|recordnA|
|father |date3|record1B|record2B|...|recordnA|
|father2|date |record1 |record2 |...|recordn |
|father2|date2|record1A|record2B|...|recordnA|
我想要的json结构是这样的:
{
"father": "father"
"Report": {
"Date": "2021-11-25",
"Values": {
"record1": "record1",
"record2": "record2",
"record3": "record3",
"recordn": "recordn"
}
},
"Report": {
"Date": "2021-11-26",
"Values": {
"record1": "record1A",
"record2": "record2A",
"record3": "record3A",
"recordn": "recordnA"
}
},
"Report": {
"Date": "2021-11-27",
"Values": {
"record1": "record1B",
"record2": "record2B",
"record3": "record3B",
"recordn": "recordnB"
}
}
}
{
"father": "father2"
"Report": {
"Date": "2021-11-25",
"Values": {
"record1": "record1",
"record2": "record2",
"record3": "record3",
"recordn": "recordn"
}
},
"Report": {
"Date": "2021-11-26",
"Values": {
"record1": "record1A",
"record2": "record2A",
"record3": "record3A",
"recordn": "recordnA"
}
}
}
地点:
我正在使用数据流派生列(请注意下面的屏幕截图以查看数据流过程)来尝试到达某个地方。我能够用这个结构生成一个 json
{
"STRUCTURE": {
"FATHER": "FATHER"
"Report": {
"Date": "2021-11-03 00:00:00.0000000",
"Values": {
"record1": "record1A",
"record2": "record2A",
"record3": "record3A",
"recordn": "recordnA"
}
}
}
}
对于 csv 的每一行。 我不清楚如何创建一个结构来在我的父亲列上进行某种“分组依据”。我不知道是否需要在 adf 的导入源步骤或派生列中更改某些内容。问题是,显然派生的 clumns 会生成一个具有我编写的结构的列。所以每行都有一个 json 。不知道有没有办法聚合。 我愿意完全改变我的前景,并且根本不使用数据流。我知道如何使用参数,但我不知道如何在那里实现它
请给我一些建议
要将管道分隔的文本文件转换为嵌套 Json,请按照以下方法操作。
进行源转换并获取其中的源数据集。
进行派生列转换并添加一个名为 Values 的新列。
Values
列的表达式为:
@(each(match(startsWith(name,'record')), $$ = $$))
进行另一个派生列转换并添加一个名为
Report
的列。该列的表达式为 @(date=date, Values=Values)
然后进行聚合转换并按
father
列对数据进行分组。
这样,您就可以聚合成嵌套 JSON。