在 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 数据帧上应用 group by 并对结果对象进行转换