一个新手问题,我对pyspark越来越困惑。我想扩展一个现有的Python数据预处理和数据分析流水线。我意识到如果我使用pyspark对数据进行分区,我就不能再将每个分区视为独立的pandas数据帧,并且需要学习如何使用pyspark.sql行/列函数进行操作,并更改很多现有的代码。此外,我绑定了Spark MLlib库,无法充分利用更成熟的scikit-learn包。那么,如果我可以在现有数据帧上使用多处理工具进行集群计算并并行处理任务,我为什么还需要使用Spark呢?
确实,Spark确实有你提到的限制,即你受到功能性Spark世界(例如Spark MLlib、DataFrames等)的约束。然而,与其他多进程工具/库相比,它提供了自动分发、分区和重新缩放并行任务的功能。与编写自定义多进程代码以响应更大量的数据+计算相比,扩展和调度Spark代码变得更加容易。