2017-06-07 13 views
0

に寄せ木ファイルから10進数フィールドを読み取る、次のように私は寄木細工のファイルを読み込むJavaの

Builder<GenericRecord> builder = AvroParquetReader.builder(path); 
ParquetReader<GenericRecord> reader = builder.build(); 

GenericRecord record = null; 
while((record = reader.read()) != null) { 
    System.out.println(record.toString()); 
} 

出力:

{"var1": "ABCD", "var2": "1234567", "var3": [0, 0, 0, 0, 0, 0, 0, 0, 113, 15, 120, -111, -92, -114, -112, 50]} 

私はバイト配列の値で実行しようと、任意の型キャスト

(byte[]) record.get("var3") 

スロー

java.lang.ClassCastException: org.apache.avro.generic.GenericData$Fixed cannot be cast to [B 

このGenericDataを10進数に戻すにはどうすればよいですか?

寄せ木ファイルスキーマ:

-bash-4.1$ parquet-tools schema my-parquet-file.gz.parquet 
message spark_schema { 
optional binary var1 (UTF8); 
optional int64 var2; 
optional fixed_len_byte_array(16) var3 (DECIMAL(38,8)); 
} 

答えて

0

は(Documentation)アブロ

public BigDecimal fromFixed(GenericFixed value, 
       Schema schema, 
       LogicalType type) 

の新しいバージョンでこれを行うことができた私は必要なものだけです。

関連する問題