Skip to main content
Mage Pro provides built-in support for running PySpark code inside your pipelines. You can run distributed Spark jobs directly within a Mage Pro batch pipeline, with automatic resource management, cloud integration, and observability. Use PySpark in Mage to transform large datasets, connect to cloud object storage like GCS or S3, and integrate with modern data lake formats like Apache Iceberg.

How to Use PySpark in Mage Pro

Follow these steps to run PySpark code in Mage Pro:
  1. Create a batch pipeline in the Mage UI.
  2. Add a block of type: Data Loader, Transformer, Data Exporter, or Custom.
  3. In your block, write PySpark code using the provided SparkSession.
  4. Install or mount any required Spark JARs, such as those for Iceberg or cloud storage access.

Example Pipeline

Create a standard batch pipeline and configure the following settings in the pipeline’s metadata.yaml file to ensure PySpark works properly:
These settings ensure data is passed in-memory between PySpark blocks and the pipeline runs in a single JVM process for Spark compatibility.

Data Loader Block (PySpark)

Data Exporter Block

This example pipeline loads structured data into a Spark DataFrame and writes it to disk in CSV format.

Connecting to Spark on Kubernetes

Mage Pro can connect to an external Spark cluster running on Kubernetes. This allows you to leverage existing Spark infrastructure or run Spark jobs on a dedicated Kubernetes cluster. Configure Spark connection settings in your project’s metadata.yaml file:

Option 2: Configure via Environment Variable

Alternatively, you can set the SPARK_MASTER_HOST environment variable in your Mage Pro workspace configuration:
  • For Kubernetes native mode: SPARK_MASTER_HOST=k8s://https://kubernetes.default.svc:443
  • For standalone Spark cluster: SPARK_MASTER_HOST=spark://spark-master-service:7077

Setting Up Spark on Kubernetes

If you need to deploy Spark on Kubernetes first, you can use Helm:
Then use the service URL in your spark_master configuration. For example:
  • Service name: my-spark-spark-master-svc
  • Port: 7077
  • Configuration: spark_master: 'spark://my-spark-spark-master-svc:7077'

Using Spark in Your Code

Once configured, you can use Spark in your pipeline blocks:
The Spark session will automatically connect to your configured Kubernetes Spark cluster.

Benefits of Running PySpark in Mage Pro

Mage Pro handles all the infrastructure so you can focus on your PySpark code:
  • ⚙️ Distributed execution with automatic pod scheduling and resource allocation
  • ☁️ Seamless cloud integration with GCS, S3, and service account/IAM-based authentication
  • 🧩 Support for Spark JARs and connectors like Apache Iceberg, GCS connectors, Delta Lake, and more
  • 📈 Built-in observability, with access to logs, resource usage, and block-level monitoring in the Mage UI

Notes

  • You can customize the SparkSession in any block using .builder.config(...) to tune performance or integrate external tools.
  • Cloud storage credentials (e.g., a GCP service account key or AWS credentials) must be mounted and accessible inside the Mage Pro cluster.
  • For advanced use cases (e.g., Apache Iceberg), see the Iceberg + PySpark guide.