[JAVA] So erstellen Sie Parkett-Tools und führen Parkett-Dateien zusammen

Hinweis zum Zusammenführen mehrerer Parkettdateien zu einer Parkettdatei

Fazit

Sie können einfach mit Parkettwerkzeugen zusammenführen. Als JAR verteilt scheint jedoch keinen Hadoop-Client zu enthalten, daher ist es lokal. Konnte nicht ausgeführt werden.

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

Daher müssen Sie es selbst erstellen. Ich habe es unter Bezugnahme auf die folgende Site erstellt. https://www.lancork.net/2016/10/inspect-parquet-files-using-parquet-tools/

Vorbereitung

Verwenden Sie die auf dem CentOS7.5-Server eingerichtete (über die GUI)

** 1. Installieren Sie möglicherweise benötigte Pakete **

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

** 2. Maven installieren **

# 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. Installieren Sie 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. Laden Sie den vollständigen Quellcode herunter ** https://github.com/apache/parquet-mr Laden Sie den vollständigen Quellcode über den obigen Link herunter.

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

** 5. Bauen ** Führen Sie den Befehl mvn unter [aktuelles Verzeichnis] / parquet-mr-master / aus Ich habe ↑ nicht bemerkt und es lief unter [aktuelles Verzeichnis] / parquet-mr-master / parquet-tools, also war ich süchtig danach.

mvn clean package -Plocal

Parkettdateien mit Parkettwerkzeugen zusammenführen

Unter [aktuelles Verzeichnis] / parquet-mr-master / parquet-tools / target Eine Datei mit dem Namen parquet-tools-1.12.0-SNAPSHOT.jar (Stand: 8. Mai 2020) wird generiert. Verwenden Sie dies zum Zusammenführen.

Jede Parkettdatei, die zusammengeführt werden sollte, war in Ordnung, daher habe ich die unten verlinkte Datei verwendet, die von Google veröffentlicht wurde. http://anson.ucdavis.edu/~clarkf/

Überprüfen Sie, ob Sie den Inhalt sehen können


# 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

···(Kürzung)···

Verschmelzen


# 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
···(Kürzung)···
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!

Ich erhalte eine Warnung, dass die Leistung beim Zusammenführen abnimmt, aber ich konnte zusammenführen.

das ist alles.

Recommended Posts

So erstellen Sie Parkett-Tools und führen Parkett-Dateien zusammen
[Java] Wie man Dateien ausgibt und schreibt!
So erstellen Sie eine API mit GraphQL und Rails
Wie man android-midi-lib baut
Umgang mit TSV-Dateien und CSV-Dateien in Ruby
Zurücksetzen der Migrationsdatei
Was ist in "Java 8 bis Java 11" passiert und wie wird eine Umgebung erstellt?
So überprüfen Sie die Erweiterung und Größe der hochgeladenen Dateien
Verwendung von StringBurrer und Arrays.toString.
Verwendung von EventBus3 und ThreadMode
So zerlegen Sie eine Java-Klassendatei
Aufrufen von Klassen und Methoden
Wie man Gleichheit und Gleichheit benutzt (wie man Gleichheit benutzt)
So verbinden Sie Heroku und Sequel
So dekompilieren Sie eine Java-Klassendatei
So konvertieren Sie LocalDate und Timestamp
So erstellen Sie CloudStack mit Docker
Wie installiere ich die in Ubuntu verwendete Sprache und wie erstelle ich die Umgebung?
So teilen Sie Dateien mit Docker Toolbox
Verwendung von binding.pry für die Ansichtsdatei
Verwendung von OrientJS und OrientDB zusammen
So richten Sie kapt ein und verwenden es
Wie man die Zehner und Einsen findet
[Einfach] So aktualisieren Sie Ruby und Bundler
Verwendung von @Builder und @NoArgsConstructor zusammen
So erstellen Sie eine Rails 6-Umgebung mit Docker
So geben Sie Excel und PDF mit Excella aus
[Java] Verwendung der FileReader-Klasse und der BufferedReader-Klasse
[Ruby] Verwendung der gsub-Methode und der sub-Methode
Wie man Stimme oder Musik mit Javascript spielt
So aktualisieren Sie eine vorgefertigte Datei in einem Docker-Container
So richten Sie jEnv (Mac) ein und bedienen es
Verwendung der Scope- und Pass-Verarbeitung (Servist)
Wie man Java SE8 Gold bekommt und studiert
So löschen Sie eine Ressourcendatei mit Spring-Boot
So finden Sie die Gesamtpunktzahl und die Durchschnittspunktzahl
[Rails] So erstellen Sie eine Umgebung mit Docker
[Rails] So geben Sie Erfolgs- und Fehlermeldungen aus
So erstellen Sie eine Pytorch-Umgebung unter Ubuntu
So erstellen Sie die einfachste Blockchain in Ruby
So erstellen Sie ein ausführbares JAR in Maven
Rails "So löschen Sie NO FILE-Migrationsdateien"
Ruby So konvertieren Sie zwischen Groß- und Kleinschreibung
So greifen Sie auf Java Private-Methoden und -Felder zu
[Java] Verwendung der Kalenderklasse und der Datumsklasse
So beenden Sie Docker für Mac und erstellen eine Docker-Entwicklungsumgebung mit Ubuntu + Vagrant
Cache Gradle-abhängige Dateien, um die Docker-Erstellung zu beschleunigen
So erstellen Sie die Docker + Springboot-App (für grundlegendes Lernen)
[Java] Arten von Kommentaren und wie man sie schreibt