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

将Apache Sedona SQL示例从Scala转Java:求断言代码的Java等价实现

Apache Sedona Scala转Java:SQL示例第128行等价代码

先拆解原Scala代码的逻辑:

  • boundary.take(1):从boundary这个Dataset/DataFrame中获取第一行数据,返回仅含一行的Dataset
  • (0):取出这个单行Dataset中的第一个元素(即Row对象)
  • .get(0):获取该行的第一个字段值
  • 最后断言该字段值与geometryFactory.createPolygon(coordinates)创建的多边形几何对象相等

对应的Java等价代码:

// 获取第一行数据,take(1)返回Row数组,取索引0的元素
Row firstRow = boundary.take(1)[0];
// 获取该行第一个字段,转换为Geometry类型(适配Sedona几何对象类型)
Geometry retrievedGeometry = (Geometry) firstRow.get(0);
// 创建预期的多边形
Geometry expectedPolygon = geometryFactory.createPolygon(coordinates);
// 断言两个几何对象精确相等(推荐用OGC标准的equalsExact方法)
assert retrievedGeometry.equalsExact(expectedPolygon);

// 若项目依赖JUnit,也可以用更规范的断言方式
// org.junit.Assert.assertEquals(expectedPolygon, retrievedGeometry);

注意:Java中take(1)返回Row[]数组,需通过索引[0]直接获取第一行;几何对象的相等判断优先使用equalsExact方法,能更精准匹配OGC几何对象的定义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 07:55:19