首页 文章

Pyspark和Pandas是否经过认证可以合作? [关闭]

提问于
浏览
3

我面临很多问题,将Pyspark数据帧集成/添加到现有的Pandas代码中 .

1)如果我将Pandas数据帧转换为Pyspark数据帧,则多个操作无法很好地转换,因为Pyspark数据帧似乎不像Pandas数据帧那样丰富 .

2)如果我选择使用Pyspark数据帧和Pandas来处理同一代码中的不同数据集,那么当通过map调用的函数包含任何pandas数据帧时,Pyspark转换(如map)似乎根本不起作用 .

我在Python中使用pandas和numpy的现有代码;并在一台机器上正常工作 . 我最初尝试将整个代码转换为Spark数据帧失败,因为Spark数据帧不支持Pandas所做的许多操作 .

现在,我正在尝试将pyspark应用于现有代码以从Pyspark的分布式计算中获益 . 使用Spark 2.1.0(Cloudera parcel)和Anaconda发行版 - 使用Python 2.7.14 .

Pyspark和Pandas是否经过认证可以合作?有什么好的参考资料,我可以找到文档和一起使用它们的例子吗?

您的回复将受到高度赞赏 .

1 回答

  • 5

    我不认为pySpark是Pandas的替代品 . 据我所知

    我会选

    • PySpark 在哪里我想做 distributed computing on huge data set ,它可能没有像Pandas这么多内置函数,因为它只是评估,因为主要关注点是分布式计算

    • Pandaslimited amount (可以放在一台机器上) of data 我想利用 many inbuilt data manipulation functions .


    Edit: (Incorporating comments)

    我的挑战是我有一个基于pandas的python代码,我希望以分布式方式运行 . 因此需要在pyspark框架内使用pandas .

    PySpark和Pandas both refer their data structure as 'dataframe' but they are different platforms at runtime .

    我们所能做的就是 rewrite application from pandas to PySpark (建议) . 如果PySpark中没有任何功能,我们需要通过UDF或UDAF实现它 .

    另一个替代解决方案是将Pandas数据帧转换为PySpark,但这通常不会被建议,因为Pandas数据帧不是分布式的,并且它可能是未来的瓶颈 .

    示例(Pandas到PySpark):

    import pandas as pd
    pandas_df = pd.DataFrame([("foo", 1), ("bar", 2)], columns=("k", "v"))
    spark_df = spark.createDataFrame(pandas_df)
    

相关问题