Вставка JSON-схемы в таблицу U-SQL - PullRequest
0 голосов
/ 16 мая 2018

Я хочу вставить схему JSON для моей таблицы U-SQL в инструмент Аналитики DataLake.Вот моя схема 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 '[' ']' '(' '{' '}' '=' '.' '*' ':' '?' '<' '>'

1 Ответ

0 голосов
/ 11 июня 2018

В моем тестировании вы могли использовать двойную кавычку, обратную косую черту, как показано ниже, для объявления вашего строкового параметра 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"": {}
        }
}";

Примечание:

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

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

...