在 pandas 数据帧上应用 Pyspark 管道

Posted

技术标签:

【中文标题】在 pandas 数据帧上应用 Pyspark 管道【英文标题】:Applying Pyspark pipeline on pandas dataframe 【发布时间】:2021-09-13 13:06:53 【问题描述】:

我有一个 pyspark 管道(包含插补和机器学习模型)和一个 pandas 数据框。我可以在此熊猫数据帧上应用管道而不将其转换为 Pyspark 数据帧吗?如果不可能,我如何有效地使用 pyspark 管道在 pandas 数据帧上生成预测?

【问题讨论】:

只是为了澄清:不转换为火花的原因是什么?这是一个函数调用spark_df = spark.createDataFrame(pandas_df)。回到熊猫spark_result_df.select("*").toPandas() 这是业务需求@Michael Szczesny 【参考方案1】:

恐怕这是不可能的。 Pyspark 模型与其他 python 库(例如 Sk-Learn 等)的工作方式不同。您将需要 Spark 数据框用于 Spark Pipeline 或/和 ML 模型。同时,你通常会使用 Spark [PySpark],因为你想分发你的竞争。 [Pandas 在单台机器上运行,而 PySpark 在多台机器上运行。如果您在处理更大数据集的机器学习应用程序,PySpark 是最合适的选择,它可以比 Pandas 快许多倍(100 倍)处理操作。]

您可以在此处阅读需要 spark [SQL] 数据框的文档:

https://spark.apache.org/docs/latest/ml-pipeline.html#main-concepts-in-pipelines

https://spark.apache.org/docs/latest/ml-pipeline.html#dataframe

希望这会有所帮助!

【讨论】:

感谢您的回复@SamL。我还想知道是否可以将此 Pyspark 管道(或至少其中的模型)转换为 python? 转换成python是什么意思?已经有其他库,例如 Sk-learn,它同时具有管道和不同的机器学习模型。最好的办法是将您的 Pandas df 转换为 Spark df。 我有一个火花管道和一个熊猫数据框。我无法在 pandas 数据帧上应用火花管道。由于业务需求,我也无法将 pandas 数据帧转换为 spark 数据帧。所以,我想看看我们是否可以将管道转换为 pandas 并将其应用于 pandas 数据帧。

以上是关于在 pandas 数据帧上应用 Pyspark 管道的主要内容,如果未能解决你的问题,请参考以下文章

在 pyspark 中的数据帧上应用 udf 后出错

如何在 pyspark 数据帧上应用 group by 并对结果对象进行转换

在具有多个参数的 pandas 数据帧上应用滚动函数

Pyspark SQL:在数据透视表中保留只有空值的条目

pyspark 数据帧上的复杂逻辑,包括前一行现有值以及动态生成的前一行值

机器学习:如何在具有分类和数字特征的 pandas 数据帧上应用一种热编码?