Läsa in data med Petastorm
Den här artikeln beskriver hur du använder Petastorm för att konvertera data från Apache Spark till TensorFlow eller PyTorch. Det innehåller också ett exempel som visar hur du använder Petastorm för att förbereda data för ML.
Petastorm är ett öppen källkod dataåtkomstbibliotek. Det möjliggör enkel nod eller distribuerad träning och utvärdering av djupinlärningsmodeller direkt från datauppsättningar i Apache Parquet-format och datauppsättningar som redan har lästs in som Apache Spark DataFrames. Petastorm stöder populära Python-baserade ramverk för maskininlärning (ML), till exempel TensorFlow, PyTorch och PySpark. Mer information om Petastorm finns i Petastorm API-dokumentationen.
Läsa in data från Spark DataFrames med petastorm
Api:et för Petastorm Spark-konverteraren förenklar datakonverteringen från Spark till TensorFlow eller PyTorch. Spark DataFrame-indata materialiseras först i Parquet-format och läses sedan in som en tf.data.Dataset
eller torch.utils.data.DataLoader
.
Se avsnittet Api för Spark Dataset Converter i Petastorm API-dokumentationen.
Det rekommenderade arbetsflödet är:
- Använd Apache Spark för att läsa in och eventuellt förbearbeta data.
- Använd Petastorm-metoden
spark_dataset_converter
för att konvertera data från en Spark DataFrame till en TensorFlow-datauppsättning eller en PyTorch DataLoader. - Mata in data i ett DL-ramverk för träning eller slutsatsdragning.
Konfigurera cachekatalog
Petastorm Spark-konverteraren cachelagrar indata för Spark DataFrame i Parquet-format på en användardefinerad cachekatalogplats. Cachekatalogen måste vara en DBFS-sökväg som börjar med file:///dbfs/
, till exempel, file:///dbfs/tmp/foo/
som refererar till samma plats som dbfs:/tmp/foo/
. Du kan konfigurera cachekatalogen på två sätt:
Lägg till raden i spark-konfigurationen i klustret:
petastorm.spark.converter.parentCacheDirUrl file:///dbfs/...
I anteckningsboken anropar du
spark.conf.set()
:from petastorm.spark import SparkDatasetConverter, make_spark_converter spark.conf.set(SparkDatasetConverter.PARENT_CACHE_DIR_URL_CONF, 'file:///dbfs/...')
Du kan antingen uttryckligen ta bort cachen när du har använt den genom att anropa converter.delete()
eller hantera cachen implicit genom att konfigurera livscykelreglerna i objektlagringen.
Databricks stöder DL-träning i tre scenarier:
- Träning med en nod
- Distribuerad hyperparameterjustering
- Distribuerad träning
Exempel från slutpunkt till slutpunkt finns i följande notebook-filer:
- Förenkla datakonvertering från Spark till TensorFlow
- Förenkla datakonvertering från Spark till PyTorch
Läs in Parquet-filer direkt med Petastorm
Den här metoden är mindre prioriterad än Petastorm Spark-konverterarens API.
Det rekommenderade arbetsflödet är:
- Använd Apache Spark för att läsa in och eventuellt förbearbeta data.
- Spara data i Parquet-format i en DBFS-sökväg som har en tillhörande DBFS-montering.
- Läs in data i Petastorm-format via DBFS-monteringspunkten.
- Använd data i ett DL-ramverk för träning eller slutsatsdragning.
Se exempelanteckningsboken för ett exempel från slutpunkt till slutpunkt.
Exempel: Förbearbeta data och träna modeller med TensorFlow eller PyTorch
Den här exempelanteckningsboken visar följande arbetsflöde i Databricks:
- Läs in data med Spark.
- Konvertera Spark DataFrame till en TensorFlow-datauppsättning med petastorm.
- Mata in data i en TensorFlow-modell med en nod för träning.
- Mata in data i en distribuerad hyperparameterjusteringsfunktion.
- Mata in data i en distribuerad TensorFlow-modell för träning.
Förenkla datakonvertering från Spark till TensorFlow Notebook
Den här exempelanteckningsboken visar följande arbetsflöde i Databricks:
- Läs in data med Spark.
- Konvertera Spark DataFrame till en PyTorch DataLoader med petastorm.
- Mata in data i en PyTorch-modell med en nod för träning.
- Mata in data i en distribuerad hyperparameterjusteringsfunktion.
- Mata in data i en distribuerad PyTorch-modell för träning.
Förenkla datakonvertering från Spark till PyTorch Notebook
Exempel: Förbearbeta data och läs in Parquet-filer med Petastorm
I den här notebook-filen visas följande arbetsflöde i Databricks:
- Använd Spark för att läsa in och förbearbeta data.
- Spara data med Parquet under
dbfs:/ml
. - Läs in data med Petastorm via den optimerade FUSE-monteringen
file:/dbfs/ml
. - Mata in data i ett ramverk för djupinlärning för träning eller slutsatsdragning.