How to use spark_partition_id() function In Python

In this method, we are going to find the number of partitions using spark_partition_id() function which is used to return the partition id of the partitions in a data frame. With the use of partition id we can count the number of partitions as implemented below.

Stepwise Implementation:

Step 1: First of all, import the required libraries, i.e. SparkSession, spark_partition_id, and countDistinct. The SparkSession library is used to create the session, while spark_partition_id is used to return the partition Id of the partitions in the data frame. The countDistinct library is used to get the count distinct of the selected multiple columns.

from pyspark.sql import SparkSession
from pyspark.sql.functions  import spark_partition_id, countDistinct

Step 2: Now, create a spark session using the getOrCreate function.

spark_session = SparkSession.builder.getOrCreate()

Step 3: Then, read the CSV file in which you want to know the number of partitions.

data_frame=csv_file = spark_session.read.csv('#Path of CSV file',
                                              sep = ',', inferSchema = True, header = True)

Step 4: Finally, get the current number of partitions using spark_partition_id and countDistinct function.

data_frame.withColumn("partitionid",
                      spark_partition_id()).select(
                                         "partitionid").agg(countDistinct("partitionid")).count()

Example:

In this example, we have read the same CSV file as in the first method and obtained the current number of partitions using the spark_partition_id and countDistinct() functions.

Python3




# Python program to get current number of 
# partitions using spark_partition_id function
  
# Import the SparkSession, spark_partition_id 
# and countDistinct libraries
from pyspark.sql import SparkSession
from pyspark.sql.functions  import spark_partition_id,
                                   countDistinct
  
# Create a spark session using getOrCreate() function
spark_session = SparkSession.builder.getOrCreate()
  
# Read the CSV file
data_frame=csv_file = spark_session.read.csv(
  '/content/class_data.csv',
  sep = ',', inferSchema = True, header = True)
  
# Get current number of partitions using spark_partition_id function
data_frame.withColumn(
  "partitionid",spark_partition_id()).select(
  "partitionid").agg(countDistinct("partitionid")).count()


Output:

1

Get current number of partitions of a DataFrame – Pyspark

In this article, we are going to learn how to get the current number of partitions of a data frame using Pyspark in Python.

In many cases, we need to know the number of partitions in large data frames. Sometimes we have partitioned the data and we need to verify if it has been correctly partitioned or not. There are various methods to get the current number of partitions of a data frame using Pyspark in Python.

Prerequisite

Note: In the article about installing Pyspark we have to install python instead of scala rest of the steps are the same.

Modules Required

Pyspark: The API which was introduced to support Spark and Python language and has features of Scikit-learn and Pandas libraries of Python is known as Pyspark. This module can be installed through the following command in Python:

pip install pyspark

Similar Reads

Methods to get the current number of partitions of a DataFrame

Using getNumPartitions() function Using spark_partition_id() function Using map() function...

Method 1: Using getNumPartitions() function

In this method, we are going to find the number of partitions in a data frame using getNumPartitions() function in a data frame....

Method 2: Using spark_partition_id() function

...

Method 3: Using map() function

In this method, we are going to find the number of partitions using spark_partition_id() function which is used to return the partition id of the partitions in a data frame. With the use of partition id we can count the number of partitions as implemented below....

Contact Us