[JAVA] Comment créer des outils de parquet et fusionner des fichiers Parquet

Remarque sur la façon de fusionner plusieurs fichiers Parquet en un seul fichier Parquet

Conclusion

Vous pouvez facilement fusionner à l'aide d'outils de parquet. Cependant, distribué sous forme de fichier jar ne semble pas inclure hadoop-client, il semble donc être local. N'a pas pu être exécuté.

# java -jar parquet-tools-1.9.0.jar cat test.parquet
org/apache/hadoop/fs/Path

Par conséquent, vous devez le construire vous-même. Je l'ai construit en me référant au site suivant. https://www.lancork.net/2016/10/inspect-parquet-files-using-parquet-tools/

Préparation

Utilisez celui configuré sur le serveur CentOS7.5 (à l'aide de l'interface graphique)

** 1. Installez les packages dont vous pourriez avoir besoin **

# yum install gcc gcc-c++ java-1.8.0-openjdk-devel boost-devel openssl-devel 

** 2. Installez maven **

# wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
# tar zxvf apache-maven-3.3.9-bin.tar.gz

** 3. Installez Thrift **

# wget -nv http://archive.apache.org/dist/thrift/0.12.0/thrift-0.12.0.tar.gz
# tar zxvf thrift-0.12.0.tar.gz
# cd thrift-0.12.0/
# ./configure -disable-gen-erl -disable-gen-hs -without-ruby -without-haskell -without-erlang -without-php -without-nodejs
# make install

** 4. Téléchargez le code source complet ** https://github.com/apache/parquet-mr Téléchargez le code source complet à partir du lien ci-dessus.

# unzip parquet-mr-master.zip
# cd parquet-mr-master/

** 5. Construire ** Exécutez la commande mvn sous [répertoire courant] / parquet-mr-master / Je n'ai pas remarqué ↑ et il fonctionnait sous [répertoire courant] / parquet-mr-master / parquet-tools, donc j'en étais accro.

mvn clean package -Plocal

Fusionner les limes Parquet avec les outils de parquet

Sous [répertoire courant] / parquet-mr-master / parquet-tools / target Un fichier appelé parquet-tools-1.12.0-SNAPSHOT.jar (à partir du 8 mai 2020) est généré. Utilisez ceci pour fusionner.

Tout fichier Parquet à fusionner était très bien, j'ai donc utilisé le fichier lié ci-dessous qui est sorti par google. http://anson.ucdavis.edu/~clarkf/

Vérifiez si vous pouvez voir le contenu


# java -jar ./parquet-tools-1.12.0-SNAPSHOT.jar cat test.parquet
timeperiod = 01/01/2016 00:00:05
flow1 = 0
occupancy1 = 0.0
speed1 = 0.0
flow2 = 0
occupancy2 = 0.0
speed2 = 0.0
flow3 = 0
occupancy3 = 0.0
speed3 = 0.0

timeperiod = 01/01/2016 00:00:35
flow1 = 0
occupancy1 = 0.0
speed1 = 0.0
flow2 = 0
occupancy2 = 0.0
speed2 = 0.0
flow3 = 0
occupancy3 = 0.0
speed3 = 0.0

···(réduction)···

Fusionner


# java -jar ./parquet-tools-1.12.0-SNAPSHOT.jar merge ./data/*.parquet ./merge.parquet
Warning: file data/part-r-00000-ddaee723-f3f6-4f25-a34b-3312172aa6d7.snappy.parquet is too small, length: 16979
Warning: file data/part-r-00001-ddaee723-f3f6-4f25-a34b-3312172aa6d7.snappy.parquet is too small, length: 18350
···(réduction)···
Warning: you merged too small files. Although the size of the merged file is bigger, it STILL contains small row groups, thus you don't have the advantage of big row groups, which usually leads to bad query performance!

Je reçois un avertissement indiquant que les performances chuteront si je fusionne, mais j'ai pu fusionner.

c'est tout.

Recommended Posts

Comment créer des outils de parquet et fusionner des fichiers Parquet
[Java] Comment sortir et écrire des fichiers!
Comment créer une API avec GraphQL et Rails
Comment construire android-midi-lib
Comment gérer les fichiers TSV et les fichiers CSV dans Ruby
Comment restaurer le fichier de migration
Que s'est-il passé dans «Java 8 to Java 11» et comment créer un environnement
Comment vérifier l'extension et la taille des fichiers téléchargés
Comment utiliser StringBurrer et Arrays.toString.
Comment utiliser EventBus3 et ThreadMode
Comment désassembler un fichier de classe Java
Comment appeler des classes et des méthodes
Comment utiliser l'égalité et l'égalité (comment utiliser l'égalité)
Comment connecter Heroku et Sequel
Comment décompiler un fichier de classe Java
Comment convertir LocalDate et Timestamp
Comment créer CloudStack à l'aide de Docker
Comment installer le langage utilisé dans Ubuntu et comment créer l'environnement
Comment partager des fichiers avec Docker Toolbox
Comment utiliser binding.pry pour afficher le fichier
Comment utiliser OrientJS et OrientDB ensemble
Comment configurer et utiliser kapt
Comment trouver les dizaines et les unités
[Facile] Comment mettre à niveau Ruby et le bundler
Comment utiliser @Builder et @NoArgsConstructor ensemble
Comment créer un environnement Rails 6 avec Docker
Comment sortir Excel et PDF avec Excella
[Java] Comment utiliser la classe FileReader et la classe BufferedReader
[Ruby] Comment utiliser la méthode gsub et la sous-méthode
Comment jouer de la voix ou de la musique en utilisant javascript
Comment mettre à jour un fichier prédéfini dans un conteneur Docker
Comment configurer et utiliser jEnv (Mac)
Comment utiliser la portée et le traitement des passes (servist)
Comment obtenir et étudier Java SE8 Gold
Comment sortir un fichier de ressources avec spring-boot
Comment trouver le score total et le score moyen
[Rails] Comment créer un environnement avec Docker
[Rails] Comment émettre des messages de réussite et d'erreur
Comment créer un environnement Pytorch sur Ubuntu
Comment créer la blockchain la plus simple de Ruby
Comment créer un fichier exécutable dans Maven
Rails "Comment supprimer les fichiers de migration NO FILE"
Ruby Comment convertir entre les majuscules et les minuscules
Comment accéder aux méthodes et champs Java Private
[Java] Comment utiliser la classe Calendar et la classe Date
Comment quitter Docker pour Mac et créer un environnement de développement Docker avec Ubuntu + Vagrant
Cachez les fichiers dépendants de Gradle pour accélérer la construction du docker
Comment créer l'application Docker + Springboot (pour l'apprentissage de base)
[Java] Types de commentaires et comment les rédiger