2017-10-10 20 views
0

Mes données sous-jacente est écrit en utilisant le format de sortie HIVE (org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat)Convertir Parquet FIXED_LEN_BYTE_ARRAY en DECIMAL carte natif Java réduire

Essayer de lire ces données en utilisant Java natif la carte réduire

byte[] b = value.getBinary(value.getType().getFieldIndex(field), 0).getBytes(); 

HiveDecimal hd = HiveDecimal.create(b, true); 
valeur

est org.apache.parquet.example.data.Group hd type ici dans ce cas devient NULL.

Mais ci-dessous fonctionne très bien pour les types string/int.

value.getValueToString(value.getType().getFieldIndex(field), 0); 
+0

S'il vous plaît modifier votre question à poser plus clairement une question. – charlesreid1

Répondre

0

Peu importe, je trouve un moyen à l'aide de DecimalUtils Parquet DECIMAL à la conversion Java BigDecimal en porc.

Ajouter lien Github link for DecimalUtils