Azure 时序见解预览版编写的 Parquet 文件不可读
Parquet file written by Azure Time Series Insights Preview is not readable
我们有一个连接到事件中心的 Azure 时序见解预览版实例。传入的事件作为 parquet 文件写入相关的冷存储数据帐户。当我尝试使用各种阅读器(如 parquet-[head|cat|etc] cmd 工具)打开 parquet 文件时,出现错误。
parquet-head
的输出
org.apache.parquet.io.ParquetDecodingException: Can not read value at
0 in block -1 in file file:20200123140854700_c8876d10_01.parquet
这里是更详细的问题示例。这是 parquet-dump
的输出
$ parquet-dump 20200123140854700_c8876d10_01.parquet
row group 0
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- timestamp: INT64 SNAPPY DO:0 FPO:4
SZ:100/850/8.50 VC:100 ENC:PLAIN,RLE ST:[min:
2020-01-23T14:08:52.583+0000, max: 2020-01-23T14:08:52.583+0000,
num_nulls: 0] id_string: BINARY SNAPPY
DO:167 FPO:194 SZ:80/76/0.95 VC:100 ENC:PLAIN_DICTIONARY,PLAIN,RLE
ST:[min: dabas96, max: dabas96, num_nulls: 0]
dabasuploader_time_string: BINARY SNAPPY DO:313 FPO:855
SZ:705/2177/3.09 VC:100 ENC:PLAIN_DICTIONARY,PLAIN,RLE ST:[num_nulls:
0, min/max not defined] dabasuploader_prod_kwh_string: BINARY
SNAPPY DO:1118 FPO:1139 SZ:62/58/0.94 VC:100
ENC:PLAIN_DICTIONARY,PLAIN,RLE ST:[min: 0, max: 0, num_nulls: 0]
dabasuploader_pred_nxd_kwh_string: BINARY SNAPPY DO:1252 FPO:1488
SZ:319/390/1.22 VC:100 ENC:PLAIN_DICTIONARY,PLAIN,RLE ST:[num_nulls:
0, min/max not defined] dabasuploader_pred_today_kwh_string: BINARY
SNAPPY DO:1650 FPO:1903 SZ:336/404/1.20 VC:100
ENC:PLAIN_DICTIONARY,PLAIN,RLE ST:[num_nulls: 0, min/max not defined]
java.lang.IllegalArgumentException: [solpos_altitude_double] optional
double solpos_altitude_double is not in the store:
[[dabasuploader_time_string] optional binary dabasuploader_time_string
(STRING), [dabasuploader_pred_nxd_kwh_string] optional binary
dabasuploader_pred_nxd_kwh_string (STRING), [id_string] optional
binary id_string (STRING), [timestamp] optional int64 timestamp
(TIMESTAMP(MILLIS,true)), [dabasuploader_pred_today_kwh_string]
optional binary dabasuploader_pred_today_kwh_string (STRING),
[dabasuploader_prod_kwh_string] optional binary
dabasuploader_prod_kwh_string (STRING)] 100
solpos_altitude_double
来自我们上传到 eventhub 的事件。我的意思是,我们称之为 solpos_altitude
。根据文档,_double
后缀来自 TSI。
根据我能找到的所有 MS Azure 文档,读取 parquet 文件应该没有问题。
有人知道哪里出了问题吗?
如果需要更多信息,我很乐意提供。
我认为这是一个由更改数据架构(漂移架构)引起的已知问题。我们目前正在修复它。
我们有一个连接到事件中心的 Azure 时序见解预览版实例。传入的事件作为 parquet 文件写入相关的冷存储数据帐户。当我尝试使用各种阅读器(如 parquet-[head|cat|etc] cmd 工具)打开 parquet 文件时,出现错误。
parquet-head
org.apache.parquet.io.ParquetDecodingException: Can not read value at 0 in block -1 in file file:20200123140854700_c8876d10_01.parquet
这里是更详细的问题示例。这是 parquet-dump
$ parquet-dump 20200123140854700_c8876d10_01.parquet
row group 0 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- timestamp: INT64 SNAPPY DO:0 FPO:4 SZ:100/850/8.50 VC:100 ENC:PLAIN,RLE ST:[min: 2020-01-23T14:08:52.583+0000, max: 2020-01-23T14:08:52.583+0000, num_nulls: 0] id_string: BINARY SNAPPY DO:167 FPO:194 SZ:80/76/0.95 VC:100 ENC:PLAIN_DICTIONARY,PLAIN,RLE ST:[min: dabas96, max: dabas96, num_nulls: 0] dabasuploader_time_string: BINARY SNAPPY DO:313 FPO:855 SZ:705/2177/3.09 VC:100 ENC:PLAIN_DICTIONARY,PLAIN,RLE ST:[num_nulls: 0, min/max not defined] dabasuploader_prod_kwh_string: BINARY SNAPPY DO:1118 FPO:1139 SZ:62/58/0.94 VC:100 ENC:PLAIN_DICTIONARY,PLAIN,RLE ST:[min: 0, max: 0, num_nulls: 0] dabasuploader_pred_nxd_kwh_string: BINARY SNAPPY DO:1252 FPO:1488 SZ:319/390/1.22 VC:100 ENC:PLAIN_DICTIONARY,PLAIN,RLE ST:[num_nulls: 0, min/max not defined] dabasuploader_pred_today_kwh_string: BINARY SNAPPY DO:1650 FPO:1903 SZ:336/404/1.20 VC:100 ENC:PLAIN_DICTIONARY,PLAIN,RLE ST:[num_nulls: 0, min/max not defined] java.lang.IllegalArgumentException: [solpos_altitude_double] optional double solpos_altitude_double is not in the store: [[dabasuploader_time_string] optional binary dabasuploader_time_string (STRING), [dabasuploader_pred_nxd_kwh_string] optional binary dabasuploader_pred_nxd_kwh_string (STRING), [id_string] optional binary id_string (STRING), [timestamp] optional int64 timestamp (TIMESTAMP(MILLIS,true)), [dabasuploader_pred_today_kwh_string] optional binary dabasuploader_pred_today_kwh_string (STRING), [dabasuploader_prod_kwh_string] optional binary dabasuploader_prod_kwh_string (STRING)] 100
solpos_altitude_double
来自我们上传到 eventhub 的事件。我的意思是,我们称之为 solpos_altitude
。根据文档,_double
后缀来自 TSI。
根据我能找到的所有 MS Azure 文档,读取 parquet 文件应该没有问题。
有人知道哪里出了问题吗? 如果需要更多信息,我很乐意提供。
我认为这是一个由更改数据架构(漂移架构)引起的已知问题。我们目前正在修复它。