PySpark is the Python API for Apache Spark, which runs on the JVM. It is the mature choice for large batch jobs and SQL over data lakes, especially where a Spark platform already exists. Dask scales NumPy, pandas and custom task graphs from one machine to a cluster with an API that feels like the libraries you already use, and it is pure Python, so it is lighter to adopt. Ray is a general distributed runtime built on tasks and actors, with libraries on top for training, tuning and serving models, which makes it common in machine learning infrastructure.