gpt4 book ai didi

python - Dataframe.toPandas 总是在驱动程序节点上还是在工作节点上?

转载 作者:可可西里 更新时间:2023-11-01 15:02:05 25 4
gpt4 key购买 nike

假设您正在通过 SparkContext 和 Hive 加载大型数据集。所以这个数据集然后分布在你的 Spark 集群中。例如,对数千个变量的观察(值 + 时间戳)。

现在您将使用一些 map/reduce 方法或聚合来组织/分析您的数据。例如按变量名分组。

分组后,您可以获得每个变量的所有观察值(值)作为时间序列数据框。如果您现在使用 DataFrame.toPandas

def myFunction(data_frame):
data_frame.toPandas()

df = sc.load....
df.groupBy('var_name').mapValues(_.toDF).map(myFunction)
  1. 是否将其转换为 Pandas Dataframe(每个变量)?工作节点,或
  2. Pandas Dataframes 是否始终在驱动程序节点上,因此数据从工作节点传输到驱动程序?

最佳答案

在这种情况下,Pandas DataFrame 没有什么特别之处。

  • 如果 DataFrame 是通过在 pyspark.sql.dataframe.DataFrame 上使用 toPandas 方法创建的 this collects data and creates local Python object on the driver .
  • 如果 pandas.core.frame.DataFrame 是在执行程序进程 (for example in mapPartitions) 中创建的,您只需得到 RDD[pandas.core.frame.DataFrame]。 Pandas 对象之间没有区别,假设是一个tuple
  • 最终,您示例中的伪代码无法工作,因为您无法(以合理的方式)创建 Spark DataFrame(我假设这就是您所说的 _.toDF 的意思)内部执行线程。

关于python - Dataframe.toPandas 总是在驱动程序节点上还是在工作节点上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39142549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com