使用 Petastorm 載入資料Load data using Petastorm

Petastorm 載入資料 是開放原始碼資料存取程式庫。Petastorm is an open source data access library. 此程式庫可讓您直接從 Apache Parquet 格式的資料集和已載入 Apache Spark 資料框架的資料集,進行單一節點或分散式訓練和評估深度學習模型。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. Petastorm 載入資料支援以 Python 為基礎的熱門機器學習 (ML) 架構,例如 Tensorflow、PyTorch 和 PySpark。Petastorm supports popular Python-based machine learning (ML) frameworks such as Tensorflow, PyTorch, and PySpark. 如需 Petastorm 載入資料的詳細資訊,請參閱 Petastorm 載入資料 GitHub 頁面petastorm 載入資料 API 檔For more information about Petastorm, refer to the Petastorm GitHub page and Petastorm API documentation.

使用 Petastorm 載入資料從 Spark 資料框架載入資料Load data from Spark DataFrames using Petastorm

Petastorm 載入資料 Spark 轉換器 API 可簡化從 Spark 到 TensorFlow 或 PyTorch 的資料轉換。The Petastorm Spark converter API simplifies data conversion from Spark to TensorFlow or PyTorch. 輸入 Spark 資料框架會先以 Parquet 格式具體化,然後載入為 tf.data.Datasettorch.utils.data.DataLoaderThe input Spark DataFrame is first materialized in Parquet format and then loaded as a tf.data.Dataset or torch.utils.data.DataLoader. 請參閱 Petastorm 載入資料 API 檔中的 Spark 資料集轉換器 API 一節See the Spark Dataset Converter API section in the Petastorm API documentation.

建議的工作流程為:The recommended workflow is:

  1. 使用 Apache Spark 載入並選擇性地預先處理資料。Use Apache Spark to load and optionally preprocess data.
  2. 使用 Petastorm 載入資料 spark_dataset_converter 方法,將資料從 Spark 資料框架轉換成 TensorFlow 資料集或 PyTorch DataLoader。Use the Petastorm spark_dataset_converter method to convert data from a Spark DataFrame to a TensorFlow Dataset or a PyTorch DataLoader.
  3. 將資料送入 DL 架構以進行定型或推斷。Feed data into a DL framework for training or inference.

設定快取目錄Configure cache directory

Petastorm 載入資料 Spark 轉換器會將 Parquet 格式的輸入 Spark 資料框架快取到使用者指定的快取目錄位置。The Petastorm Spark converter caches the input Spark DataFrame in Parquet format in a user-specified cache directory location. 快取目錄必須是開頭為的 DBFS 保險絲路徑 file:///dbfs/ ,例如, file:///dbfs/tmp/foo/ 它參考與相同的位置 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/. 您可以透過兩種方式來設定快取目錄:You can configure the cache directory in two ways:

  • 在叢集 Spark 設定中,新增下列程式程式碼: petastorm.spark.converter.parentCacheDirUrl file:///dbfs/...In the cluster Spark config add the line: petastorm.spark.converter.parentCacheDirUrl file:///dbfs/...

  • 在您的筆記本中,呼叫 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/...')
    

您可以藉由 converter.delete() 在物件儲存體中設定生命週期規則,藉由明確地呼叫或管理快取,以在使用快取之後明確刪除快取。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 支援三種案例中的 DL 定型:Databricks supports DL training in three scenarios:

  • 單一節點定型Single-node training
  • 分散式超參數微調Distributed hyperparameter tuning
  • 分散式定型Distributed training

如需端對端範例,請參閱下列筆記本:For end-to-end examples, see the following notebooks:

使用 Petastorm 載入資料直接載入 Parquet 檔Load Parquet files directly using Petastorm

這個方法比 Petastorm 載入資料 Spark 轉換器 API 更慣用。This method is less preferred than the Petastorm Spark converter API.

建議的工作流程為:The recommended workflow is:

  1. 使用 Apache Spark 載入並選擇性地預先處理資料。Use Apache Spark to load and optionally preprocess data.
  2. 將 Parquet 格式的資料儲存在具有隨附保險絲掛接的 DBFS 路徑中。Save data in Parquet format into a DBFS path that has a companion FUSE mount.
  3. 透過保險絲掛接點載入 Petastorm 載入資料格式的資料。Load data in Petastorm format via the FUSE mount point.
  4. 使用 DL 架構中的資料進行定型或推斷。Use data in a DL framework for training or inference.

如需端對端範例,請參閱 範例筆記本See example notebook for an end-to-end example.

範例Examples

簡化從 Spark 到 TensorFlow 筆記本的 資料轉換 Simplify data conversion from Spark to TensorFlow notebook

取得筆記本Get notebook

簡化從 Spark 到 PyTorch 筆記本的 資料轉換 Simplify data conversion from Spark to PyTorch notebook

取得筆記本Get notebook

使用 Spark 和 petastorm 載入資料來準備深度學習筆記本 的資料 Use Spark and Petastorm to prepare data for deep learning notebook

取得筆記本Get notebook