python - 为什么 python dataFrames' 只位于同一台机器上?

标签 python dataframe apache-spark pyspark apache-spark-dataset

我正在阅读spark权威指南,其中写道:

Python/R DataFrames exist on one machine rather than multiple machines... this limits what you can do with a given DataFrame to resources that exist on that specific machine..

因此,我想知道为什么Python的dataFrame不能跨越多台机器?如果这意味着 python 不是分布式的?
更新
Python/R 是否有类似 Spark scala/java 的等效分布式 DataFrame??DataFrame

最佳答案

Pandas 不允许您将数据帧自行分发到多台计算机。当您拥有以下数据时,这对我们有好处

  • 适合内存 (RAM)
  • 适合磁盘

因此,当您拥有可以用单台机器处理的数据时,它会很好地工作。但是,当数据和处理需求增长时,您希望迁移到存储和处理数据帧的分布式/并行处理的库。数据帧的概念在这些库中很常见,但实现方式有所不同,以提供分布式处理能力。两个很好的例子是

  1. Dask,它通常通过多处理/多任务在利用多个核心/线程的单台机器上使用,但也可以在分布式集群。
  2. Apache Spark 主要用于多节点集群模式,因此是分布式数据处理框架。 (但也可以在单机上使用)

更新:

你问这个

DataFrame CONCEPT is the one that is not distributed, however R and Python have other concept to do distributed computation

Dataframe 不需要非分布式或分布式,它只是一个概念,DataFrame 是一个二维数据结构,其中的列可以有不同的类型,并且查询、汇总和操作非常容易和高效它被许多面向数据的编程范式和库所采用。因此,利用和操作这些数据帧也可以以分布式方式完成,以处理大数据。 Spark只是分布式数据处理框架的一个示例,它可以与包括R和Python在内的多种语言一起使用

关于python - 为什么 python dataFrames' 只位于同一台机器上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63690443/

相关文章:

python - 为什么我的 uWSGI 找不到我的 Django 应用程序?

python - 在 SciPy 中将复杂函数的根存储在数组中

python - 如何在没有循环的情况下将多个 Pandas DF 列更改为分类

python - Pandas 分组 - 值占基于另一列的分组总数的百分比

scala - 我如何处理 Spark scala 中的模式匹配中的空值

python - 选择字符串 numpy 数组中的字符 (Python)

python : cant open file 'hw.py' : [Errno 2] No such file or directory

python - 根据Python中的条件从DataFrame中提取之前的日期数据

java - java openjdk 版本 "1.8.0_232"的类路径

scala - Spark DataFrame 在 OneHotEncoder 中处理空字符串