Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure 从JSON复杂类型获取数据的U-SQL脚本出现语法错误_Azure_Azure Data Lake_U Sql - Fatal编程技术网

Azure 从JSON复杂类型获取数据的U-SQL脚本出现语法错误

Azure 从JSON复杂类型获取数据的U-SQL脚本出现语法错误,azure,azure-data-lake,u-sql,Azure,Azure Data Lake,U Sql,这是我的输入JSON文件 [ { "Tag": "STACK007", "data": [ { "item": "UNIFY109", "timestamp": "2018-08-27T17:28:51.8490000Z", "jsonVersion": 1, "messageType": 1, "velocity": 709 } ], "EventProc

这是我的输入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对这个问题的回答:


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

请在csv文件中定义所需的列。