gpt4 book ai didi

azure-data-factory - U- SQL无法从JSON文件提取数据

转载 作者:行者123 更新时间:2023-12-04 13:48:07 25 4
gpt4 key购买 nike

我试图使用USQL从JSON文件中提取数据。查询成功运行而不产生任何输出数据,或者导致“顶点失败快速错误”。

JSON文件如下所示:

{
"results": [
{
"name": "Sales/Account",
"id": "7367e3f2-e1a5-11e5-80e8-0933ecd4cd8c",
"deviceName": "HP",
"deviceModel": "g6-pavilion",
"clientip": "0.41.4.1"
},
{
"name": "Sales/Account",
"id": "c01efba0-e0d5-11e5-ae20-af6dc1f2c036",
"deviceName": "acer",
"deviceModel": "veriton",
"clientip": "10.10.14.36"
}
]
}

我的U-SQL脚本是
REFERENCE ASSEMBLY [Newtonsoft.Json];
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];

DECLARE @in string="adl://xyz.azuredatalakestore.net/todelete.json";

DECLARE @out string="adl://xyz.azuredatalakestore.net/todelete.tsv";

@trail2=EXTRACT results string FROM @in USING new Microsoft.Analytics.Samples.Formats.Json.JsonExtractor();

@jsonify=SELECT Microsoft.Analytics.Samples.Formats.Json.JsonFunctions.JsonTuple(results,"name","id","deviceName","deviceModel","clientip") AS rec FROM @trail2;

@logSchema=SELECT rec["name"] AS sysName,
rec["id"] AS sysId,
rec["deviceName"] AS domainDeviceName,
rec["deviceModel"] AS domainDeviceModel,
rec["clientip"] AS domainClientIp
FROM @jsonify;

OUTPUT @logSchema TO @out USING Outputters.Tsv();

最佳答案

实际上,JSONExtractor支持JSONPath中表示的rowpath参数,该参数使您能够标识要映射到行中的JSON对象或JSON数组项。因此,您可以使用一条语句从JSON文档中提取数据:

@logSchema = 
EXTRACT name string, id string, deviceName string, deviceModel string, clientip string
FROM @input
USING new Microsoft.Analytics.Samples.Formats.Json.JsonExtractor("results[*]");

关于azure-data-factory - U- SQL无法从JSON文件提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35913685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com