Не удается открыть или запросить файлы .parquet из-за поврежденного столбца

#apache-spark #parquet #azure-data-lake #azure-stream-analytics #azure-synapse

#apache-искра #паркет #лазурный-данные-озеро #azure-stream-аналитика #лазурный-синапс

Вопрос:

Я отправляю данные телеметрии JSON из Azure Stream Analytics в Azure Data Lake Gen2, сериализованные в виде файлов .parquet. Из озера данных я затем создал представление в своем бессерверном пуле SQL Azure Synapse, к которому я могу подключаться и запрашивать данные для отчетов.

Время от времени я буду запускать запрос и возвращать следующую ошибку:

Ошибка обработки внешнего файла: «Недопустимые метаданные в файле parquet. Количество строк в метаданных не соответствует фактическому количеству строк в файле parquet.’. Имя файла/внешней таблицы: ‘https://test123.dfs.core.windows.net/devicetelemetry/2021/12/03/20/-1875592941_d9a0239529f04e1eb587b83d50bbb590_1.parquet’.

Когда я пытаюсь открыть файл .paqruet, о котором идет речь, с помощью «Apache Parquet Viewer» или любого другого средства просмотра parquet, оно выдает ошибки и отказывается открывать файл, жалуясь, что столбец с именем «данные» не определен. Столбец данных представляет собой строку JSON с различными показаниями датчиков устройств Интернета Вещей.

Мой запрос StreamAnalytics, отправляющий данные в мои ADLS, выглядит следующим образом:

 SELECT   Tel.identities.corporationId AS corporationId, Tel.identities.deviceId,   Tel.deviceTelemetry.version, Tel.deviceTelemetry.TimeStamp AS dateTimeStamp,   Tel.deviceTelemetry.data INTO   deviceTelemetryADLS FROM   data AS Tel  WHERE Tel.deviceTelemetry.data IS NOT null  

Вопрос

Разве используемое здесь предложение WHERE не гарантирует, что данные всегда будут присутствовать? Иначе оно не было бы отправлено? В противном случае, как еще могут быть повреждены мои файлы .parquet?

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

1. Эй, Джош, если это зависит от времени, не могли бы вы открыть заявку в службу поддержки на портале Azure? Если нет, я попытаюсь воспроизвести проблему. Если возможно, не могли бы вы поделиться образцом входного файла, в котором воспроизводится проблема? Лучше всего было бы отправить по адресу askasa@microsoft.com

2. К вашему сведению, вы можете легко сгенерировать примеры файлов из кода VS во входном файле конфигурации после предварительного просмотра данных.