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

Spark Java中如何从Row获取正确数据类型的属性值

Spark Java中从Row获取不同类型字段值的方法

1. 使用getAs()获取Long/Int等类型

getAs()方法完全支持Long、Integer、Boolean等Java包装类型,只要字段的实际类型和你声明的接收类型匹配,就能直接获取值,无需额外转换:

// 获取Long类型字段
final Long quantity = row.getAs("quantity");

// 获取Int类型字段
final Integer age = row.getAs("age");

注意:如果字段实际类型与接收类型不匹配(比如把Int类型字段用Long接收),会抛出ClassCastException,请确保与DataFrame的Schema定义一致。

2. 使用getLong()/getInt()等方法(通过字段名转索引)

getLong()、getInt()这类方法需要传入字段的索引值,你可以先通过Row的Schema获取字段名对应的索引,再调用这些方法:

// 根据字段名获取索引
int quantityIndex = row.schema().fieldIndex("quantity");
// 获取long基本类型值(可自动装箱为Long包装类)
long quantity = row.getLong(quantityIndex);

// 同理获取Int类型
int ageIndex = row.schema().fieldIndex("age");
int age = row.getInt(ageIndex);

这类方法返回的是Java基本类型,若需要包装类可直接自动装箱,比如Long quantityObj = row.getLong(quantityIndex);。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 19:22:03