Искаженные записи обнаруживаются при анализе вывода схемы в json

#json #azure #azure-data-factory-2

Вопрос:

У меня действительно неприятная ошибка при попытке проанализировать базовое чтение Json из хранилища больших двоичных объектов с использованием набора данных в ADF

Мой Json находится ниже

 [{"Bid":0.197514880839,"BaseCurrency":"AED"}
,{"Bid":0.535403560434,"BaseCurrency":"AUD"}
,{"Bid":0.351998712241,"BaseCurrency":"BBD"}
,{"Bid":0.573128306234,"BaseCurrency":"CAD"}
,{"Bid":0.787556605631,"BaseCurrency":"CHF"}
,{"Bid":0.0009212964,"BaseCurrency":"CLP"}
,{"Bid":0.115389497248,"BaseCurrency":"DKK"}
]
 

Я перепробовал все 3 исходных параметра Json, и каждый из них выдает ошибку

 Malformed records are detected in schema inference. Parse Mode: FAILFAST
 

3 настройки, как в

 Single Document
Array Of Documents
Document Per Line
 

Кто-нибудь может помочь? Мне просто нужно, чтобы это был список объектов, вот и все!

Пол

Ответ №1:

Это должно работать для настройки JSON — Array of documents .

введите описание изображения здесь

введите описание изображения здесь
введите описание изображения здесь

Комментарии:

1. Спасибо, не могли бы вы настроить этот ответ, чтобы он отображал кодировку как US-ASCII, пожалуйста? Это было исправлением (хотя на самом деле это скорее обходной путь) Я думаю, что все еще полезно сохранить этот вопрос, потому что это действительно тонкая проблема, и вы четко перечислили здесь шаги — я получаю JSON из API

Ответ №2:

Мы сталкиваемся с этой проблемой, когда у нас есть файл json с кодировкой спецификации UTF-8, поток данных ADF не может анализировать такие файлы. Вы можете указать кодировку как UTF-8 без кодирования при создании файла, это будет работать.

В моем случае я использую действие копирования для объединения и создания файла json и указал кодировку как UTF-8 без спецификации, и это решило мою проблему.

Примечание: По какой-то причине мы не можем использовать набор данных с кодировкой «UTF-8 без спецификации» в потоке данных, в этом случае вы можете создать два набора данных: один с кодировкой UTF-8 по умолчанию (которая будет использоваться в потоке данных) и один с кодировкой UTF-8 без спецификации(которая будет использоваться в приемнике операций копирования/при создании файла).

Спасибо.