python - 无法将 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”:“需求失败:会话未激活."}
任何帮助,将不胜感激 !
谢谢
解决方案
Spark 是一个分布式处理框架,而 pandas 在单个节点上完成所有处理。
现在,当您尝试将 spark 数据帧转换为 pandas 时,它会尝试从所有节点获取数据到单一模式,如果您的内存不足以处理单个节点上的所有数据,它将失败,也不推荐。
为什么还要将 spark df 转换为 pandas df?我认为您也可以在 spark 中实现类似的功能。
推荐阅读
- c# - 如何找出卡尔曼滤波器旋转翻转问题
- python - 当我尝试运行代码时,Beautiful Soup 会导致错误
- vue.js - Vue:如何在 CI 平台上找出构建引擎所需的依赖项?
- php - PHP的说法是对的吗?
- mysql - 将大型(40 GB).csv 文件上传到 mysql 表的最佳方法是什么
- recaptcha - Orbeon 表单 - 提交表单后 reCAPTCHA Field required 错误
- java - 如何评估包含枚举值的json字符串?
- typeorm - 如何使用 typeorm 加载与树实体的关系?
- mysql - 嵌套 SQL 查询?
- python - 这两个结果有什么不同?