apache-spark - 我是否可以加快在 pyspark 上运行 python 库的速度
问题描述
当我运行诸如 pandas 或 scikit learn 之类的 python 库时,我试图通读并准确了解 Spark 中的加速来自何处,但我没有看到任何特别有用的信息。如果我可以在不使用 pyspark 数据帧的情况下获得相同的加速,我可以只使用 pandas 部署代码并且它的性能大致相同吗?
我想我的问题是:
如果我有工作的 pandas 代码,是否应该将其转换为 PySpark 以提高效率?
解决方案
如果您询问是否通过在驱动程序节点上启动任意 Python 代码来获得任何加速,答案是否定的。Driver 是一个普通的 Python 解释器,它不会以“神奇”的方式影响你的代码。
如果我有工作的 pandas 代码,是否应该将其转换为 PySpark 以提高效率?
如果你想获得分布式计算的好处,那么你必须使用分布式原语重写你的代码。然而,这不是免费的午餐:
- 您的问题可能无法很好地分配。
- 即使是这样,数据量也可能无法证明分配的合理性 -如何在每个结果之后添加 <br/>,而不是最后一个结果?
换句话说 - 如果您的代码在 Pandas 或 Scikit Learn 上运行良好,那么您几乎不可能通过将其重写为 Spark 获得任何东西。
推荐阅读
- python - “Line2D”对象没有属性“密度”
- xaml - 控件与其他控件重叠,需要更多空间
- json - 在 Flutter 中使用条件将数据解析为两个单独的列表
- c - 在接收()之前发送()
- android - 在主要活动中为 editText id 获取“未解决的参考”错误
- python - 选择特定值时数据框未正确过滤(熊猫)
- python - 从 CSV 文件中删除相似但不相等的行的最佳方法是什么?
- javascript - 如何将元组并集转换为对象类型
- android - 将原始音频数据文件从 Android 应用程序发送到 Node.js 服务器
- swift - 在页面左上角快速打印视图