Python Dataframe.topanda始终在驱动程序节点上还是在工作节点上?
假设您正在通过SparkContext和配置单元加载一个大型数据集。因此,该数据集将分布在Spark集群中。例如,数千个变量的观察值(值+时间戳) 现在,您可以使用一些map/reduce方法或聚合来组织/分析数据。例如,按变量名分组 分组后,可以将每个变量的所有观察值(值)作为timeseries数据帧获取。如果现在使用DataFrame.toPandasPython Dataframe.topanda始终在驱动程序节点上还是在工作节点上?,python,hadoop,pandas,apache-spark,pyspark,Python,Hadoop,Pandas,Apache Spark,Pyspark,假设您正在通过SparkContext和配置单元加载一个大型数据集。因此,该数据集将分布在Spark集群中。例如,数千个变量的观察值(值+时间戳) 现在,您可以使用一些map/reduce方法或聚合来组织/分析数据。例如,按变量名分组 分组后,可以将每个变量的所有观察值(值)作为timeseries数据帧获取。如果现在使用DataFrame.toPandas def myFunction(data_frame): data_frame.toPandas() df = sc.load...
def myFunction(data_frame):
data_frame.toPandas()
df = sc.load....
df.groupBy('var_name').mapValues(_.toDF).map(myFunction)
在这种情况下,熊猫
数据帧
没有什么特别之处
- 如果使用
上的pyspark.sql.DataFrame.DataFrame
方法创建了toPandas
DataFrame
- 如果在executor进程()内创建了
,则只需获得pandas.core.frame.DataFrame
。熊猫对象和元组之间没有区别RDD[pandas.core.frame.DataFrame]
- 最后,您的示例中的伪代码无法工作,因为您无法(以合理的方式)在executor线程内创建Spark
数据帧(我假设这就是您所说的
)..toDF
数据帧没有什么特别之处
- 如果使用
pyspark.sql.DataFrame.DataFrame
上的toPandas
方法创建了DataFrame
- 如果在executor进程()内创建了
pandas.core.frame.DataFrame
,则只需获得RDD[pandas.core.frame.DataFrame]
。熊猫对象和元组之间没有区别
- 最后,您的示例中的伪代码无法工作,因为您无法(以合理的方式)在executor线程内创建Spark
数据帧(我假设这就是您所说的..toDF
)
因此,您可以在map函数中使用Pandas Dataframe API,以便在worker节点中使用其更多的方法。例如,在映射步骤中仅对该信息进行一些分析并返回结果。是的,这是可能的,类似于SparkRdapply
。但是,要获得理想的性能可能很棘手,因此您必须平衡资源分配和并行性。您是我的英雄。我还是个新手,但正在进步。也许你可以帮助我。取决于你是如何创建它的,请看我的答案,这样你就可以在map函数中使用Pandas Dataframe API,甚至在worker节点中使用它更多的Conva方法。例如,在映射步骤中仅对该信息进行一些分析并返回结果。是的,这是可能的,类似于SparkRdapply
。但是,要获得理想的性能可能很棘手,因此您必须平衡资源分配和并行性。您是我的英雄。我还是个新手,但正在进步。也许你可以帮我。取决于你如何创造它,在这里看到我的答案