Преобразование файла Avro в JSON с использованием JSONOutputer - PullRequest
0 голосов
/ 29 мая 2018

У меня есть требование, когда мне нужно извлечь файлы JSON из Avro с помощью U-SQL.Avro файлы содержат коллекцию JSON и должны извлекать отдельные JSON из Avro.Здесь я написал код.Я использовал JsonOuptter () для написания jsons.

OUTPUT @source
TO "C:/Users/gutthil1/Desktop/ActivityTracker/Single_JSON/schemaType.json"
USING new JsonOutputter();

Я получаю JSON, как показано ниже.

[
  {
    "type": "CE",
    "cnn": "11",
    "source": "{\r\n  \"vendorCd\": \"G\",\r\n  \"brandCd\": \"4\",\r\n  \"channelCd\": \"C\",\r\n  \"accessTypeCd\": \"I\"\r\n}",

  },
  {
    "type": "CE",
    "cnn": "9",
    "source": "{\r\n  \"vendorCd\": \"G\",\r\n  \"brandCd\": \"4\",\r\n  \"channelCd\": \"C\",\r\n  \"accessTypeCd\": \"I\"\r\n}",

  }
]

Я ожидаю JSON, как показано ниже.

[
{  
   "type":"CE",
   "ccn":"11",
   "source":{  
      "vendorCd":"G",
      "brandCd":"4",
      "channelCd":"C",
      "accessTypeCd":"I"
   },
{  
   "type":"CE",
   "ccn":"9",
   "source":{  
      "vendorCd":"G",
      "brandCd":"4",
      "channelCd":"C",
      "accessTypeCd":"I"
   }
]

Спасибо за вашу помощь и поддержку.

1 Ответ

0 голосов
/ 29 мая 2018

Ваш столбец source имеет тип string и, таким образом, вставляется как строковое значение, а не как объект JSON.В настоящее время у вас есть следующие две опции, обе из которых, вероятно, требуют расширения кода JSONOutputter:

  1. Добавьте опцию, позволяющую указать, какие столбцы должны быть встроены в виде фрагмента JSON вместо строки.
  2. Добавить параметр для обработки SqlMap как свойства, установленного для столбца вместо строки.
...