首页 > 解决方案 > 无法将 PySpark 数据帧转换为行数 > 15M 记录的 Pandas 数据帧

问题描述

我正在尝试使用 toPandas() 函数将 PySpark 数据帧转换为 Pandas 数据帧。然而,它失败了!

我的 Pyspark 数据框包含超过 1500 万条记录。这似乎有问题吗?

from pyspark.sql import *  
from pyspark.sql.functions import *  
from pyspark.sql.types import *  
import pandas as pd

df = sqlContext.table("schema.table")
df_pd=df.toPandas()

收到以下错误: 遇到错误:来自http://xyz:1000/sessions/205/statements/2的无效状态代码“400”,错误有效负载:{“msg”:“需求失败:会话未激活."}

任何帮助,将不胜感激 !

谢谢

标签: pythonpandasdataframepyspark

解决方案


Spark 是一个分布式处理框架,而 pandas 在单个节点上完成所有处理。

现在,当您尝试将 spark 数据帧转换为 pandas 时,它会尝试从所有节点获取数据到单一模式,如果您的内存不足以处理单个节点上的所有数据,它将失败,也不推荐。

为什么还要将 spark df 转换为 pandas df?我认为您也可以在 spark 中实现类似的功能。


推荐阅读