【问题标题】:Unable to convert PySpark Dataframe to Pandas dataframe with row count > 15M records无法将 PySpark 数据帧转换为行数 > 15M 记录的 Pandas 数据帧
【发布时间】:2020-05-20 17:29:08
【问题描述】:

我正在尝试使用 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":"requirement failed: Session is not active."}

任何帮助将不胜感激!

谢谢

【问题讨论】:

    标签: python pandas dataframe pyspark


    【解决方案1】:

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

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

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

    【讨论】:

    • 我正在尝试使用一些在 spark 中不可用的 pandas 和 numpy 函数。因此我将数据框转换为熊猫以有效地执行它们。
    • 如果您的数据量很大,请返回 pandas 并且 numpy 不是一个好的选择。您可以直接使用 pyspark 函数进行操作。
    猜你喜欢
    • 1970-01-01
    • 2021-11-16
    • 2021-09-15
    • 2020-07-24
    • 1970-01-01
    • 2021-10-06
    • 2017-09-18
    • 2017-02-04
    相关资源
    最近更新 更多