You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark 3.2计算DataFrame字节大小:executePlan参数取值疑问

Spark 3.2中sessionState.executePlan第二个参数的传入值问题

在Spark 3.2版本中调用spark.sessionState().executePlan()时,该方法要求传入两个参数:org.apache.spark.sql.catalyst.plans.logical.LogicalPlan和scala.Enumeration.Value,你的原代码因缺少第二个参数导致编译错误。

第二个参数的正确传入值

第二个参数需要传入org.apache.spark.sql.internal.SessionState.ExecuteMode枚举的实例,该枚举在Spark 3.2中有两个可选值:

  • EXECUTE_AND_COLLECT:用于执行计划并收集结果
  • EXECUTE_AND_EVALUATE:用于执行计划并评估(仅获取元数据/统计信息,无需实际收集数据)

修正后的代码示例

如果你的需求只是获取DataFrame的大小统计,使用EXECUTE_AND_EVALUATE更高效,修正后的Java代码如下:

import org.apache.spark.sql.internal.SessionState;

// 指定执行模式
SessionState.ExecuteMode executeMode = SessionState.ExecuteMode.EXECUTE_AND_EVALUATE;
BigInt dfSize = getSparkSession().sessionState().executePlan(logicalPlan, executeMode).optimizedPlan().stats().sizeInBytes();

内容的提问来源于stack exchange,提问作者mbr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 03:50:17