2017-05-10 1 views
1

J'utilise fastparquet pour convertir des fichiers de données pandas en fichiers de parquet. C'est beaucoup plus rapide que mon approche précédente qui utilisait pyspark.fastparquet: comment désactiver le codage rle

Je veux lire ces fichiers à l'aide parquet étincelle à savoir

sqlCtx.read.parquet('/tmp/parquet/test.parquet') 

J'ai eu quelques problèmes que je réussi à résoudre. Le problème que j'ai maintenant est avec le codage RLE. Je reçois l'exception java suivante lorsque je tente de lire le fichier parquet avec pyspark:

Unsupported encoding: RLE 

est-il un moyen de désactiver RLE lorsque vous utilisez la méthode fastparquet write?

Répondre

1

Il s'agit d'une optimisation dans fastparquet pour les entiers courts ('int8', 'int16', 'uint8', 'uint16'). Malheureusement, l'étincelle ne supporte pas la spécification complète du parquet.

Si vous souhaitez que vos données soient lisibles par étincelles, vous devez d'abord convertir des colonnes entières de 32 ou 64 bits.

Il a été envisagé de mettre en œuvre un «mode de compatibilité» où ces problèmes disparaissent au détriment de la performance, mais aucun plan concret à ce sujet actuellement.