Чтобы преобразовать Pandas Dataframe в Spark dataframe и наоборот, вам придется использовать pyarrow, который представляет собой столбчатый формат данных в памяти, который используется в Spark для эффективной передачи данных между процессами JVM и Python.
Стрелка доступна в качестве оптимизации при преобразовании Spark DataFrame в Pandas DataFrame с помощью вызова toPandas () и при создании Spark DataFrame из Pandas DataFrame с помощью createDataFrame (pandas_df). Чтобы использовать Arrow при выполнении этих вызовов, пользователям необходимо сначала установить для параметра Spark spark.sql.execution.arrow.enabled значение true. По умолчанию это отключено.
Кроме того, оптимизации, включенные spark.sql.execution.arrow.enabled, могут автоматически вернуться к реализации оптимизации, не связанной со стрелкой, если перед фактическим вычислением в Spark произошла ошибка. Это можно контролировать с помощью spark.sql.execution.arrow.fallback.enabled.
Подробнее см. По этой ссылке Руководство по использованию PySpark для панд с Apache Arrow
import numpy as np
import pandas as pd
# Enable Arrow-based columnar data transfers
spark.conf.set("spark.sql.execution.arrow.enabled", "true")
# Generate a Pandas DataFrame
pdf = pd.DataFrame(np.random.rand(100, 3))
# Create a Spark DataFrame from a Pandas DataFrame using Arrow
df = spark.createDataFrame(pdf)
# Convert the Spark DataFrame back to a Pandas DataFrame using Arrow
result_pdf = df.select("*").toPandas()