Laden von Daten mit PetastormLoad data using Petastorm

Bei " Peer " handelt es sich um eine Open Source-Datenzugriffs Bibliothek.Petastorm is an open source data access library. Diese Bibliothek ermöglicht das einmalige oder verteilte Training und die Auswertung von Deep Learning-Modellen direkt aus Datasets im Apache-Parkett-Format und Datasets, die bereits als Apache Spark dataframes geladen wurden.This library enables single-node or distributed training and evaluation of deep learning models directly from datasets in Apache Parquet format and datasets that are already loaded as Apache Spark DataFrames. "Peer tastorm" unterstützt beliebte python-basierte Machine Learning-Frameworks (ml) wie tensorflow, pytorch und pyspark.Petastorm supports popular Python-based machine learning (ML) frameworks such as Tensorflow, PyTorch, and PySpark. Weitere Informationen zu "Peer Name" finden Sie auf der GitHub-Seite von Peer tastorm und in der Dokumentation zu den Peer tastorm-APIs.For more information about Petastorm, refer to the Petastorm GitHub page and Petastorm API documentation.

Laden von Daten aus Spark-dataframes mithilfe von "Peer"Load data from Spark DataFrames using Petastorm

Die Peer-API von Peer tastorm vereinfacht die Datenkonvertierung von Spark in tensorflow oder pytorch.The Petastorm Spark converter API simplifies data conversion from Spark to TensorFlow or PyTorch. Der Spark-Eingabe dataframe wird zuerst im Parkett Format materialisiert und dann als tf.data.Dataset oder geladen torch.utils.data.DataLoader .The input Spark DataFrame is first materialized in Parquet format and then loaded as a tf.data.Dataset or torch.utils.data.DataLoader. Weitere Informationen finden Sie im Abschnitt zur Spark-DataSet-konverterapi in der Dokumentation der Peer-API.See the Spark Dataset Converter API section in the Petastorm API documentation.

Der empfohlene Workflow lautet wie folgt:The recommended workflow is:

  1. Verwenden Sie Apache Spark, um Daten zu laden und optional vorzuverarbeiten.Use Apache Spark to load and optionally preprocess data.
  2. Verwenden Sie die Methode "Peer tastorm" spark_dataset_converter , um Daten aus einem Spark-dataframe in ein tensorflow-DataSet oder einen pytorch-DataLoader zu konvertieren.Use the Petastorm spark_dataset_converter method to convert data from a Spark DataFrame to a TensorFlow Dataset or a PyTorch DataLoader.
  3. Feeds von Daten in ein DL-Framework zum trainieren oder ableiten.Feed data into a DL framework for training or inference.

Cache Verzeichnis konfigurierenConfigure cache directory

Der petastorm Spark-Konverter speichert den Spark-Eingabe dataframe im Parkett Format in einem vom Benutzer angegebenen Speicherort des Cache Verzeichnisses zwischen.The Petastorm Spark converter caches the input Spark DataFrame in Parquet format in a user-specified cache directory location. Beim Cache Verzeichnis muss es sich um einen dBFS-fuse-Pfad handeln, der mit beginnt file:///dbfs/ , z file:///dbfs/tmp/foo/ . b., der auf den gleichen Speicherort verweist dbfs:/tmp/foo/ .The cache directory must be a DBFS FUSE path starting with file:///dbfs/, for example, file:///dbfs/tmp/foo/ which refers to the same location as dbfs:/tmp/foo/. Das Cache Verzeichnis kann auf zwei Arten konfiguriert werden:You can configure the cache directory in two ways:

  • Fügen Sie in der Cluster- Spark-Konfiguration die folgende Zeile hinzu:petastorm.spark.converter.parentCacheDirUrl file:///dbfs/...In the cluster Spark config add the line: petastorm.spark.converter.parentCacheDirUrl file:///dbfs/...

  • Anrufen Sie in Ihrem Notebook Folgendes spark.conf.set() :In your notebook, call spark.conf.set():

    from petastorm.spark import SparkDatasetConverter, make_spark_converter
    
    spark.conf.set(SparkDatasetConverter.PARENT_CACHE_DIR_URL_CONF, 'file:///dbfs/...')
    

Sie können den Cache entweder explizit löschen, indem Sie ihn aufrufen, converter.delete() oder den Cache implizit verwalten, indem Sie die Lebenszyklus Regeln im Objektspeicher konfigurieren.You can either explicitly delete the cache after using it by calling converter.delete() or manage the cache implicitly by configuring the lifecycle rules in your object storage.

Databricks unterstützt das DL-Training in drei Szenarien:Databricks supports DL training in three scenarios:

  • Training auf einem einzelnen KnotenSingle-node training
  • Verteilte hyperparameteroptimierungDistributed hyperparameter tuning
  • Verteiltes TrainingDistributed training

End-to-End-Beispiele finden Sie in den folgenden Notebooks:For end-to-end examples, see the following notebooks:

Laden Sie Parkett Dateien direkt mithilfe von "Peer".Load Parquet files directly using Petastorm

Diese Methode ist weniger vorzuziehen als die Spark Converter-API von Peer tastorm.This method is less preferred than the Petastorm Spark converter API.

Der empfohlene Workflow lautet wie folgt:The recommended workflow is:

  1. Verwenden Sie Apache Spark, um Daten zu laden und optional vorzuverarbeiten.Use Apache Spark to load and optionally preprocess data.
  2. Speichern Sie Daten im Parkett Format in einem dBFS-Pfad mit einer begleitenden fuse-einreilegung.Save data in Parquet format into a DBFS path that has a companion FUSE mount.
  3. Laden von Daten im Format "Peer tastorm" über den fuse-Einfügepunkt.Load data in Petastorm format via the FUSE mount point.
  4. Verwenden Sie Daten in einem DL-Framework zum trainieren oder ableiten.Use data in a DL framework for training or inference.

Ein End-to-End-Beispiel finden Sie unter Beispiel Notebook .See example notebook for an end-to-end example.

BeispieleExamples

Vereinfachen der Datenkonvertierung von Spark in tensorflow -Notebook Simplify data conversion from Spark to TensorFlow notebook

Notebook abrufenGet notebook

Vereinfachen der Datenkonvertierung von Spark in das pytorch -Notebook Simplify data conversion from Spark to PyTorch notebook

Notebook abrufenGet notebook

Verwenden von Spark und Peer tastorm zum Vorbereiten von Daten für Deep Learning Notebook Use Spark and Petastorm to prepare data for deep learning notebook

Notebook abrufenGet notebook