从 JSON 复杂类型获取数据的 U-SQL 脚本语法错误
Syntax error on U-SQL Script to get data from JSON complex type
这是我输入的 JSON 文件。
[
{
"Tag": "STACK007",
"data": [
{
"item": "UNIFY109",
"timestamp": "2018-08-27T17:28:51.8490000Z",
"jsonVersion": 1,
"messageType": 1,
"velocity": 709
}
],
"EventProcessedUtcTime": "2018-08-27T17:36:17.5519639Z",
"EventEnqueuedUtcTime": "2018-08-27T17:28:52.0010000Z"
}
]
我正在尝试将此输入 JSON 文件转换为 CSV。这是我的 U-SQL 脚本
REFERENCE ASSEMBLY [Newtonsoft.Json];
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];
USING Microsoft.Analytics.Samples.Formats.Json;
DECLARE @input string = @"/demodata/logs/2018/08/input.json";
@json =
EXTRACT
Tag string,
EventProcessedUtcTime DateTime,
EventEnqueuedUtcTime DateTime,
JsonFunctions.JsonTuple(data) AS data
FROM @input
USING new JsonExtractor();
@result =
SELECT Tag,
address["velocity"]AS Velocity,
address["messageType"]AS MessageType,
address["timestamp"]AS Timestamp
FROM @json;
OUTPUT @result
TO "/output/demooutput.csv"
USING Outputters.Csv();
此脚本给我一个语法错误消息“语法错误。应为:'.' “
我该如何解决这个问题?
我发现之前已经回答过这个问题:
@resultset =
EXTRACT
item string,
jsonversion int,
messageType int,
velocity float
FROM @input
USING new Microsoft.Analytics.Samples.Formats.Json.JsonExtractor("data[*]");
这是 Michael Rys 对这个 Whosebug 问题的回答:
"实际上 JSONExtractor 支持在 JSONPath 中表示的 rowpath 参数,使您能够识别 JSON 对象或 JSON 您想要映射到行中的数组项。因此您可以使用单个语句从 JSON 文档"
中提取数据
这是我输入的 JSON 文件。
[
{
"Tag": "STACK007",
"data": [
{
"item": "UNIFY109",
"timestamp": "2018-08-27T17:28:51.8490000Z",
"jsonVersion": 1,
"messageType": 1,
"velocity": 709
}
],
"EventProcessedUtcTime": "2018-08-27T17:36:17.5519639Z",
"EventEnqueuedUtcTime": "2018-08-27T17:28:52.0010000Z"
}
]
我正在尝试将此输入 JSON 文件转换为 CSV。这是我的 U-SQL 脚本
REFERENCE ASSEMBLY [Newtonsoft.Json];
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];
USING Microsoft.Analytics.Samples.Formats.Json;
DECLARE @input string = @"/demodata/logs/2018/08/input.json";
@json =
EXTRACT
Tag string,
EventProcessedUtcTime DateTime,
EventEnqueuedUtcTime DateTime,
JsonFunctions.JsonTuple(data) AS data
FROM @input
USING new JsonExtractor();
@result =
SELECT Tag,
address["velocity"]AS Velocity,
address["messageType"]AS MessageType,
address["timestamp"]AS Timestamp
FROM @json;
OUTPUT @result
TO "/output/demooutput.csv"
USING Outputters.Csv();
此脚本给我一个语法错误消息“语法错误。应为:'.' “
我该如何解决这个问题?
我发现之前已经回答过这个问题:
@resultset =
EXTRACT
item string,
jsonversion int,
messageType int,
velocity float
FROM @input
USING new Microsoft.Analytics.Samples.Formats.Json.JsonExtractor("data[*]");
这是 Michael Rys 对这个 Whosebug 问题的回答:
"实际上 JSONExtractor 支持在 JSONPath 中表示的 rowpath 参数,使您能够识别 JSON 对象或 JSON 您想要映射到行中的数组项。因此您可以使用单个语句从 JSON 文档"
中提取数据