Pandas 能否在 Spark 上 运行?
Could Pandas ever run on Spark?
我们有一个 Spark 集群,用于对 Python 中的各种金融数据集进行分析,范围高达数百 TB。它适用于那些熟悉 Spark 的人,但最近我们有一些更熟悉 Pandas 的数据科学家要求使用 Pandas 而不是 Spark。 Spark 的主要优点是它专为分布式处理而设计,可以处理更大的数据集,因此我们一直在研究建立 Dask 集群。
但这让我开始思考:通过实施兼容层将 Pandas 原语转换为 Spark 原语,Pandas 脚本无法在 Spark 集群上 运行 是否有一些概念上的原因,与 Dask 的工作方式相同?或者它们在某些方面有根本的不同?
大多数 Spark 集群使用 Apache Yarn 跨多个节点部署 Spark。这些集群还使用 Yarn 部署其他服务,如 Hive、Flink、Hadoop MapReduce 等。任何可以与 Yarn 通信的应用程序都可能 运行 在您的集群上本地; Spark 就是这样一种应用程序。
你大概可以 运行 Dask Dataframes (which are today the closest thing to parallel Pandas dataframes) on your Spark/Yarn cluster today using the Dask Yarn 项目。
更新:您现在似乎可以使用 Databricks 的新 Koalas 项目来执行此操作:
https://databricks.com/blog/2019/04/24/koalas-easy-transition-from-pandas-to-apache-spark.html
我们有一个 Spark 集群,用于对 Python 中的各种金融数据集进行分析,范围高达数百 TB。它适用于那些熟悉 Spark 的人,但最近我们有一些更熟悉 Pandas 的数据科学家要求使用 Pandas 而不是 Spark。 Spark 的主要优点是它专为分布式处理而设计,可以处理更大的数据集,因此我们一直在研究建立 Dask 集群。
但这让我开始思考:通过实施兼容层将 Pandas 原语转换为 Spark 原语,Pandas 脚本无法在 Spark 集群上 运行 是否有一些概念上的原因,与 Dask 的工作方式相同?或者它们在某些方面有根本的不同?
大多数 Spark 集群使用 Apache Yarn 跨多个节点部署 Spark。这些集群还使用 Yarn 部署其他服务,如 Hive、Flink、Hadoop MapReduce 等。任何可以与 Yarn 通信的应用程序都可能 运行 在您的集群上本地; Spark 就是这样一种应用程序。
你大概可以 运行 Dask Dataframes (which are today the closest thing to parallel Pandas dataframes) on your Spark/Yarn cluster today using the Dask Yarn 项目。
更新:您现在似乎可以使用 Databricks 的新 Koalas 项目来执行此操作: https://databricks.com/blog/2019/04/24/koalas-easy-transition-from-pandas-to-apache-spark.html