Data Factory Parquet неправильно принимает десятичные дроби

Я работаю над конвейером Фабрики данных Azure и заметил, что когда я использую приемник паркета для ADLS Gen 2, некоторые десятичные дроби усекаются и возвращают результаты, не соответствующие источнику данных. Из ADLS эти данные передаются в блоки данных для аналитики, где изначально была обнаружена ошибка.

Пример: Исходный источник данных: 861.099901397946075. В Паркете: 86199901397946075 В DataBricks: 86.199901397946075.

Тип данных в источнике данных — Decimal(35,15), и при сохранении данных в виде паркета в десятичном формате удаляется начальный «0», что приводит к смещению десятичной части числа.

Я также заметил, что это происходит не с каждой десятичной записью, которую я принимаю, а только с теми, у которых в этом десятичном месте стоят ведущие нули.

Кто-нибудь сталкивался с этим и знает, как это исправить? Спасибо.

Попробовал - загрузил данные через Parquet. Загрузка этих данных в DataBricks. Ожидаемые результаты, соответствующие источнику данных. Я пробовал Parquet без/с разными видами сжатия, но безуспешно.

Я использовал раковину CSV вместо паркета, и данные заполнились правильно. Хотя в моем случае я предпочитаю паркет.

Как вы копируете данные в файл паркета? Вы делаете какие-то трансформации? Как вы просматривали данные в файле паркета?

Aswin 12.07.2024 10:11

@Aswin Я копирую его с помощью команды копирования и SQL-запроса. Никакого преобразования не делается, запрос просто SELECT * FROM... WHERE... Я просматривал паркет в VSCode через расширение, но также заметил эту ошибку после переноса данных в DataBricks

Brandon Chan 12.07.2024 16:08
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
2
72
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это было связано с десятичным типом Decimal(35,15). Parquet в ADF поддерживает только десятичное число (28, ), поэтому тип данных пришлось изменить для правильной обработки.

Другие вопросы по теме