Файл паркета, написанный Azure Просмотр временных рядов, недоступен для чтения - PullRequest
0 голосов
/ 24 января 2020

У нас есть Azure экземпляр предварительного просмотра временного ряда, подключенный к концентратору событий. Входящие события записываются в соответствующую учетную запись данных холодного хранения в виде файлов паркета. Когда я пытаюсь открыть файл parquet с помощью различных программ чтения (например, инструменты parquet- [head | cat | etc] cmd), я получаю ошибки.

Вывод parquet-head

org. apache .parquet.io.ParquetDecodingException: Невозможно прочитать значение в 0 в блоке -1 в файле file: 20200123140854700_c8876d10_01.parquet

Вот пример проблемы более подробно. Это вывод parquet-dump

$ parquet-dump 20200123140854700_c8876d10_01.parquet
группа строк 0 -------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ------------------ отметка времени: INT64 SNAPPY DO: 0 FPO: 4 SZ: 100/850 / 8.50 V C: 100 EN C: PLAIN, RLE ST : [мин: 2020-01-23T14: 08: 52.583 + 0000, макс: 2020-01-23T14: 08: 52.583 + 0000, num_nulls: 0] id_string: Двоичный SNAPPY DO: 167 FPO: 194 SZ: 80/76 / 0,95 В C: 100 EN C: PLAIN_DICTIONARY, PLAIN, RLE ST: [min: dabas96, max: dabas96, num_nulls: 0] dabasuploader_time_string: Двоичный SNAPPY DO: 313 FPO: 855 SZ: 705/2177 / 3.09 C: 100 EN C: PLAIN_DICTIONARY, PLAIN, RLE ST: [num_nulls: 0, min / max не определено] dabasuploader_prod_kwh_string: BINARY SNAPPY DO: 1118 FPO: 1139 SZ: 62/58 / 0,94 V C: 100 EN C: PLAIN_DICTIONARY, PLAIN, RLE ST: [min: 0, max: 0, num_nulls: 0] dabasu ploader_pred_nxd_kwh_string: BINARY SNAPPY DO: 1252 FPO: 1488 SZ: 319/390 / 1,22 В C: 100 EN C: PLAIN_DICTIONARY, PLAIN, RLE ST: [num_null: 0, мин. / макс. не определено] dabred_p_D_D_P_P_P_P_P_P_P_P_T__B_P_T_P_P_T_WAR_S_P_P_T_P_PAR_S_PAR_S_WAR_PAR_S_P_PH DO: 1650 FPO: 1903 SZ: 336/404 / 1,20 В C: 100 EN C: PLAIN_DICTIONARY, PLAIN, RLE ST: [num_nulls: 0, мин. / Макс. Не определено] java .lang.IllegalArgumentException: [solpos_altitude_double] необязательный double solpos_altitude_double отсутствует в хранилище: [[dabasuploader_time_string] необязательный двоичный dabasuploader_time_string (STRING), [dabasuploader_pred_nxd_kwh_string] необязательный двоичный dabasuploader_pred_stst_stmp [time_string] временная_строка (дополнительная) STRING_TING_STRING_STR_TING_STRING_STR_T_STR_TING_ST_T_STR_TING_D_T_STR_T_STR_TING_T_ST_D_T_STR_TING_T_ST_D_T_STR_T_ST_D_TING_TING_TING_TING_TING_TING_STR_TING_TING_TING_TING_TING_TING_STR_D_ST_T_STR_DING_STR_DING_STRING_STR_DING_STR_DING_STRING_DING_STAR_DB TIMESTAMP (Миллис, правда)), [dabasuploader_pred_today_kwh_string] необязательный двоичный dabasuploader_pred_today_kwh_string (STRING), [dabasuploader_prod_kwh_string] необязательный двоичный dabasuploader_prod_kwh_string (STRING)] 100

The solpos_altitude_double исходит от событий, которые мы UPLO объявление на eventhub. Я имею в виду, мы называем это solpos_altitude. Согласно документам, постфикс _double исходит от TSI.

Согласно всем документациям MS Azure, которые я смог найти, чтение файла паркета должно быть возможным без проблем.

Кто-нибудь знает, что пошло не так? Если потребуется дополнительная информация, я с радостью предоставлю.

1 Ответ

0 голосов
/ 25 февраля 2020

Я считаю, что это известная проблема, вызванная изменением схемы данных (дрейфующей схемы). В настоящее время мы работаем над исправлением.

...