Вставка схемы JSON в таблицу U-SQL

Я хочу вставить схему JSON для моей таблицы U-SQL в инструмент DataLake Analysts. Вот моя схема JSON

DECLARE @json string=  "{
        "definitions": {},
        "$schema": "http://json-schema.org/draft-06/schema#",
        "$id": "http://getIQOS.com/IQOSAbandonedCartV1.json",
        "title": "CE:I:ORD:ABC",
        "type": "object",
        "properties": {
            "altriaOrchestrated": {
                "$id": "/properties/altriaOrchestrated",
                "type": "integer",
                "title": "Altria Orchestrated",
                "description": "Specifies whether the AT object is being called by Core Services (1) or from an outside source (0)",
                "default": 0,
                "enum": [
                    0, 1
                ],
                "examples": [
                    0, 1
                ],
                "minimum": 0,
                "maximum": 1
            },
        "required": [
            "altriaOrchestrated",
            "initiativeName",
            "date",
            "inventory"
        ]
     }"

Я получаю ошибку ниже и не могу понять, что это за ошибка. Я остановил свое развитие из-за этой проблемы.

 AGG ALL AND ARRAY BETWEEN BIGINT BIT BINARY BY COLUMNSET CREATED CSHARP CURRENT DATETIME DATETIME2 DECIMAL EXISTS FILE FLOAT FOLLOWING GROUP IN INT IS LENGTH LCID MAP MAX MODIFIED MONEY NULL NVARCHAR OR OVER PARTITION PRECEDING REAL SMALLINT SQL STRUCT TINYINT UNBOUNDED UNIQUEIDENTIFIER VARBINARY VARCHAR WITHIN string-literal numeric-literal character-literal punctuation-mark identifier quoted-identifier reserved-identifier variable system-variable '[' ']' '(' '{' '}' '=' '.' '*' ':' '?' '<' '>'

person Lalith    schedule 16.05.2018    source источник


Ответы (1)


Согласно моему тестированию, вы можете использовать двойную кавычку и обратную косую черту следующим образом, чтобы объявить параметр строки json.

DECLARE @json string ="{"+
        "\"definitions\": {},"+
        "\"$schema\": \"http://json-schema.org/draft-06/schema#\","+
        "\"$id\": \"http://getIQOS.com/IQOSAbandonedCartV1.json\","+
        "\"title\": \"CE:I:ORD:ABC\","+
        "\"type\": \"object\","+
        "\"properties\": {"+
            "\"altriaOrchestrated\": {}"+
        "}"+
"}";

Кроме того, вы можете использовать строковые литералы Verbatim C#, которые упрощают обработку таких символов, добавляя символ @ перед начальной двойной кавычкой строки. Для вашей строки json вы можете объявить ее следующим образом:

DECLARE @json string =@"{
        ""definitions"": {},
        ""$schema"": ""http://json-schema.org/draft-06/schema#"",
        ""$id"": ""http://getIQOS.com/IQOSAbandonedCartV1.json"",
        ""title"": ""CE:I:ORD:ABC"",
        ""type"": ""object"",
        ""properties"": {
           ""altriaOrchestrated"": {}
        }
}";

Примечание.

Максимальный размер столбца строкового типа составляет 128 КБ в U-SQL (на основе количества байтов строкового значения, представленного в кодировке UTF-8).

Подробности, на которые вы можете подписаться: Текстовые типы и литералы.

person Bruce Chen    schedule 11.06.2018