Wie kann ich die Apache Parquet-Datei in Windows anzeigen?

Lesezeit: 7 Minuten

Benutzeravatar von Sal
Sal

Ich konnte keine einfachen englischen Erklärungen zu Apache Parquet-Dateien finden. Wie zum Beispiel:

  1. Was sind Sie?
  2. Benötige ich Hadoop oder HDFS, um sie anzuzeigen/zu erstellen/zu speichern?
  3. Wie kann ich Parkettdateien erstellen?
  4. Wie kann ich Parkettdateien einsehen?

Jede Hilfe zu diesen Fragen ist willkommen.

  • Windows-Dienstprogramm zum Öffnen und Anzeigen von Parquet-Dateien: github.com/mukunku/ParquetViewer

    – Sal

    19. Juni 2018 um 16:59 Uhr

  • DUCKDB CLI-Tool zum Anzeigen von Parquet-Daten oder Schemas – stackoverflow.com/a/74260936/6563567

    – shetti15

    31. Oktober um 9:22 Uhr


Benutzeravatar von Sal
Sal

Was ist Apache Parquet?

Apache Parquet ist ein binäres Dateiformat, das Daten spaltenweise speichert. Daten in einer Parquet-Datei ähneln einer Tabelle im RDBMS-Stil, in der Sie Spalten und Zeilen haben. Aber anstatt zeilenweise auf die Daten zuzugreifen, greifen Sie normalerweise spaltenweise darauf zu.

Apache Parquet ist eines der modernen Big-Data-Speicherformate. Es hat mehrere Vorteile, von denen einige sind:

  • Säulenlagerung: Effizienter Datenabruf, effiziente Komprimierung usw.
  • Metadaten befinden sich am Ende der Datei: Ermöglicht das Generieren von Parquet-Dateien aus einem Datenstrom. (häufig in Big-Data-Szenarien)
  • Unterstützt von allen Apache Big Data-Produkten

Benötige ich Hadoop oder HDFS?

Nein. Parquet-Dateien können in jedem Dateisystem gespeichert werden, nicht nur in HDFS. Wie oben erwähnt, handelt es sich um ein Dateiformat. Es ist also genau wie jede andere Datei, wo es einen Namen und eine hat .Parkett Verlängerung. Was jedoch in Big-Data-Umgebungen normalerweise passiert, ist, dass ein Datensatz für noch mehr Effizienz in mehrere Parquet-Dateien aufgeteilt (oder partitioniert) wird.

Alle Apache Big Data-Produkte unterstützen standardmäßig Parquet-Dateien. Aus diesem Grund scheint es so, als ob es nur im Apache-Ökosystem existieren kann.

Wie kann ich Parquet-Dateien erstellen/lesen?

Wie bereits erwähnt, unterstützen alle aktuellen Apache-Big-Data-Produkte wie Hadoop, Hive, Spark usw. standardmäßig Parquet-Dateien.

Es ist also möglich, diese Systeme zu nutzen, um Parquet-Daten zu generieren oder zu lesen. Aber das ist alles andere als praktikabel. Stellen Sie sich vor, Sie müssten zum Lesen oder Erstellen einer CSV-Datei Hadoop/HDFS + Hive installieren und konfigurieren. Zum Glück gibt es andere Lösungen.

So erstellen Sie Ihre eigenen Parkettdateien:

  • In Java lesen Sie bitte meinen folgenden Beitrag: Parquet-Datei mit Java generieren
  • In .NET sehen Sie sich bitte die folgende Bibliothek an: parkett-dotnet

So zeigen Sie den Inhalt der Parquet-Datei an:

Gibt es andere Methoden?

Möglicherweise. Aber es gibt nicht viele und sie sind meistens nicht gut dokumentiert. Dies liegt daran, dass Parquet ein sehr kompliziertes Dateiformat ist (ich konnte nicht einmal eine formale Definition finden). Die, die ich aufgelistet habe, sind die einzigen, die mir bekannt sind, während ich diese Antwort schreibe

  • Ich konnte an anderer Stelle keine Informationen zur Dateierweiterung für Parquet-Dateien finden. Ich denke, ich werde mitgehen .parquet 😉

    – Tomasz Gandor

    29. November 2019 um 9:42 Uhr

  • Der ParquetViewer konnte fast keine meiner Dateien öffnen .:(

    – Shahar Prish

    12. April 2021 um 15:24 Uhr

  • @ShaharPrish Ich würde ein Issue-Ticket im Repo mit einigen Beispieldateien öffnen.

    – Sal

    13. April 2021 um 20:19 Uhr

Benutzeravatar von meow
Miau

Dies ist jetzt durch möglich Apache-Pfeilwas hilft, die Kommunikation/Übertragung zwischen verschiedenen Datenformaten zu vereinfachen, siehe meine Antwort hier oder die offizielle Dokumente im Fall von Python.

Im Grunde können Sie damit schnell Parkettdateien in Pandas lesen / schreiben DataFrame wie Mode, die Ihnen die Vorteile der Verwendung bietet notebooks um solche Dateien anzuzeigen und zu handhaben, als wäre es eine normale csv Datei.

BEARBEITEN:

Als Beispiel wird die neueste Version von gegeben Pandasvergewissere dich pyarrow ist installiert:

Dann können Sie einfach Pandas verwenden, um Parquet-Dateien zu manipulieren:

import pandas as pd

# read
df = pd.read_parquet('myfile.parquet')

# write
df.to_parquet('my_newfile.parquet')

df.head()

  • Ab 2022 ist dies die einzige Möglichkeit, die Parquet-Datei in Mac OS zu lesen, da Parquet-Tools veraltet sind und sogar die JAR-Datei nicht funktioniert.

    – nomadSK25

    18. November um 21:39 Uhr

Benutzeravatar von nirolo
nirolo

Neben der ausführlichen Antwort von @sal ist mir in diesem Zusammenhang noch eine weitere Frage begegnet:

Wie kann ich mit SQL auf die Daten in einer Parquet-Datei zugreifen?

Da wir uns hier immer noch im Windows-Kontext befinden, kenne ich nicht so viele Möglichkeiten, dies zu tun. Die besten Ergebnisse wurden durch die Verwendung erzielt Funke wie die SQL-Engine mit Python als Schnittstelle zu Spark. Ich gehe aber davon aus, dass die Zeppelin Environment funktioniert auch, habe das aber selbst noch nicht ausprobiert.

Es gibt eine sehr gut gemachte Anleitung von Michael Garlanyk um einen durch die Installation der Spark/Python-Kombination zu führen.

Nach der Einrichtung kann ich über Folgendes mit Parkett interagieren:

from os import walk
from pyspark.sql import SQLContext

sc = SparkContext.getOrCreate()
sqlContext = SQLContext(sc)

parquetdir = r'C:\PATH\TO\YOUR\PARQUET\FILES'

# Getting all parquet files in a dir as spark contexts.
# There might be more easy ways to access single parquets, but I had nested dirs
dirpath, dirnames, filenames = next(walk(parquetdir), (None, [], []))

# for each parquet file, i.e. table in our database, spark creates a tempview with
# the respective table name equal the parquet filename
print('New tables available: \n')

for parquet in filenames:
    print(parquet[:-8])
    spark.read.parquet(parquetdir+'\\'+parquet).createOrReplaceTempView(parquet[:-8])

Sobald Sie Ihre Parkette auf diese Weise geladen haben, können Sie mit der Pyspark-API interagieren, z. B. über:

my_test_query = spark.sql("""
select
  field1,
  field2
from parquetfilename1
where
  field1 = 'something'
""")

my_test_query.show()

Eugenes Benutzeravatar
Eugen

Vielleicht zu spät für diesen Thread, machen Sie einfach eine Ergänzung für alle, die Parquet-Dateien mit einer Desktop-Anwendung anzeigen möchten, die auf MAC oder Linux ausgeführt wird.
Es gibt eine Desktop-Anwendung zum Anzeigen Parkett und auch andere Daten im Binärformat wie ORK und AVRO. Es ist eine reine Java-Anwendung, die unter Linux, Mac und auch Windows ausgeführt werden kann. Bitte prüfen Bigdata-Dateibetrachter für Details.

Es unterstützt komplexe Datentypen wie Array, Map usw.

Geben Sie hier die Bildbeschreibung ein

Benutzeravatar von Enrico Detoma
Enrico Detoma

Hier ist ein kurzer “Hack”, um es zu zeigen einzelner Tisch Parquet-Dateien mit Python in Windows (ich verwende Anaconda Python):

  • Installieren pyarrow Paket https://pypi.org/project/pyarrow/

  • Installieren pandasgui Paket https://pypi.org/project/pandasgui/

  • Erstellen Sie dieses einfache Skript parquet_viewer.py:

    import pandas as pd
    from pandasgui import show
    import sys
    import os
    
    dfs = {}
    for fn in sys.argv[1:]:
        dfs[os.path.basename(fn)] = pd.read_parquet(fn)
    show(**dfs)
    
  • Assoziieren .parquet Dateierweiterung, indem Sie diese Befehle als Administrator ausführen (natürlich müssen Sie die Pfade an Ihre Python-Installation anpassen):

    assoc .parquet=parquetfile
    ftype parquetfile="c:\Python3\python.exe" "\<path to>\parquet_viewer.py" "%1"
    

Dadurch können Parkettdateien geöffnet werden, die mit Komprimierungsformaten (z. B. Zstd) komprimiert wurden, die vom .NET-Viewer in der Antwort von @Sal nicht unterstützt werden.

  • Verwenden where python um den Pfad zu Python zu finden. Führen Sie eine DOS-Admin-Eingabeaufforderung aus (nicht Powershell). Wenn bereits eine Dateizuordnung vorhanden ist, klicken Sie mit der rechten Maustaste auf eine beliebige .parquet Datei, auswählen Open With ... Choose Another App und auswählen parquetfile. Bei Dateien mit über 100 MB ist es sehr langsam.

    – Contango

    23. Januar um 14:56 Uhr

Benutzeravatar von RaHuL VeNuGoPaL
RaHuL VeNuGoPaL

Wenn wir auf dem Mac den Inhalt anzeigen möchten, können wir „Parquet-Tools“ installieren.

  • Parkett-Werkzeuge brauen installieren
  • Parquet-Tools-Head-Dateiname

Wir können die Parquet-Datei immer in einen Datenrahmen in Spark einlesen und den Inhalt sehen.

Sie haben spaltenförmige Formate und eignen sich besser für analytische Umgebungen, schreiben einmal und lesen viele. Parquet-Dateien eignen sich eher für leseintensive Anwendungen.

  • Verwenden where python um den Pfad zu Python zu finden. Führen Sie eine DOS-Admin-Eingabeaufforderung aus (nicht Powershell). Wenn bereits eine Dateizuordnung vorhanden ist, klicken Sie mit der rechten Maustaste auf eine beliebige .parquet Datei, auswählen Open With ... Choose Another App und auswählen parquetfile. Bei Dateien mit über 100 MB ist es sehr langsam.

    – Contango

    23. Januar um 14:56 Uhr

Benötige ich Hadoop oder HDFS, um sie anzuzeigen/zu erstellen/zu speichern?

Nein. Kann mit einer Bibliothek Ihrer bevorzugten Sprache durchgeführt werden. Beispiel: Mit Python können Sie verwenden. PyPfeil, SchnellParkett, Pandas.

Wie kann ich Parkettdateien einsehen? Wie kann ich Parkettdateien erstellen?

(GUI-Option für Windows, Linux, MAC)

Sie können verwenden Biber um Parkettdaten anzuzeigen, Metadaten und Statistiken anzuzeigen, SQL-Abfragen für eine oder mehrere Dateien auszuführen, neue Parkettdateien zu generieren usw.

DBeaver nutzt den DuckDB-Treiber, um Operationen an Parquet-Dateien durchzuführen.

Erstellen Sie einfach eine In-Memory-Instanz von DuckDB Verwenden Sie Dbeaver und führen Sie die Abfragen wie hier erwähnt aus dokumentieren.

Hier ist ein Youtube-Video, das dies erklärt – https://youtu.be/j9_YmAKSHoA

Geben Sie hier die Bildbeschreibung ein

Alternative:
Verwendung des DuckDB-CLI-Tools

1436330cookie-checkWie kann ich die Apache Parquet-Datei in Windows anzeigen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy