Plugins

Register plugins to hook into DataFrame creation and operations.

from sparkless.sql import SparkSession

class AuditPlugin:
    def before_create_dataframe(self, session, data, schema):
        # mutate data or schema
        return data, schema

    def after_create_dataframe(self, session, df):
        # inspect or wrap df
        return df

spark = SparkSession()
spark._register_plugin(AuditPlugin())

_ = spark.createDataFrame([{"id": 1}], ["id"])  # hooks will run