L'interface Python pour Apache Spark permet le traitement distribué des données via des opérations DataFrame, des pipelines de ML et l'analyse de flux à grande échelle.
Apache Spark est écrit dans le langage de programmation Scala. PySpark a été créé pour soutenir la collaboration d'Apache Spark et de Python : concrètement, c'est une API Python pour Spark. De plus, PySpark joue le rôle d'interface avec les datasets distribués résilients (RDD) d'Apache Spark et le langage de programmation Python. C'est la bibliothèque Py4j qui a permis d'obtenir ce résultat.

Py4J est une bibliothèque populaire, intégrée à PySpark, qui permet à Python de s'interfacer dynamiquement avec les objets JVM. PySpark comprend plusieurs bibliothèques pensées pour l'écriture de programmes efficaces. Diverses bibliothèques externes sont également compatibles. En voici une sélection :
Cette bibliothèque PySpark permet d'appliquer une analyse de type SQL à une grande quantité de données structurées ou semi-structurées. Il est aussi possible d'utiliser des requêtes SQL avec PySparkSQL. Et de la connecter à Apache Hive. HiveQL est également utilisable. PySparkSQL est un wrapper pour le noyau PySpark. PySparkSQL a introduit le DataFrame, une représentation tabulaire des données structurées similaire à une table dans un système de gestion de base de données relationnelle.