简介
函数列表
SedonaSQL 支持 SQL/MM Part3 空间 SQL 标准,包含以下四种 SQL 算子。所有这些算子都可以通过下面的方式直接调用:
var myDataFrame = sedona.sql("YOUR_SQL")
此外,也可以使用 expr 和 selectExpr 调用:
myDataFrame.withColumn("geometry", expr("ST_*")).selectExpr("ST_*")
- 构造函数(Constructor):根据输入的字符串或坐标构造一个 Geometry
- 示例:ST_GeomFromWKT (string)。根据 WKT 字符串创建一个 Geometry。
- 文档:点击查看
- 函数(Function):在指定的一列或多列上执行某个函数
- 聚合函数(Aggregate function):对给定列返回聚合后的值
- 示例:ST_Envelope_Aggr (Geometry column)。给定一个 Geometry 列,计算该列所有几何对象的总外接包络。
- 文档:点击查看
- 谓词(Predicate):在给定的列上执行逻辑判断,返回 true 或 false
- 示例:ST_Contains (A, B)。检查 A 是否完全包含 B。如果是则返回 “True”,否则返回 “False”。
- 文档:点击查看
Sedona 还提供了一个 Adapter 用于在 SpatialRDD 与 DataFrame 之间相互转换。详见 Adapter Scaladoc
SedonaSQL 支持 SparkSQL 查询优化器,相关文档见此处
栅格函数列表
SedonaSQL 同样支持栅格数据处理。栅格函数以 RS_ 为前缀。所有栅格算子的调用方式与矢量算子相同:
var myDataFrame = sedona.sql("YOUR_SQL")
- 构造函数(Constructor):根据输入的文件或参数构造一个 Raster
- 示例:RS_FromGeoTiff (binary)。从一个 GeoTiff 二进制数据创建一个 Raster。
- 文档:点击查看
- 函数(Function):在指定的一列或多列 Raster 上执行某个函数
- 聚合函数(Aggregate function):对给定的 Raster 列返回聚合后的值
- 示例:RS_Union_Aggr (Raster column)。给定一个 Raster 列,将所有 Raster 合并为单个多波段栅格。
- 文档:点击查看
- 谓词(Predicate):在给定的列上执行逻辑判断,返回 true 或 false
- 示例:RS_Intersects (raster, geometry)。判断一个栅格是否与一个几何对象相交。如果是则返回 “True”,否则返回 “False”。
- 文档:点击查看
栅格快速入门
详细说明请参见编写栅格 DataFrame/SQL 应用。
快速入门
详细说明请参见编写 SQL/DataFrame 应用。
- 在你的项目 pom.xml 或 build.sbt 中加入 Sedona-core 和 Sedona-SQL
- 如果需要定制 SparkSession,创建你自己的 Sedona 配置。
import org.apache.sedona.spark.SedonaContext
val config = SedonaContext.builder().
master("local[*]").appName("SedonaSQL")
.getOrCreate()
- 在 Sedona context 声明之后加上以下代码:
import org.apache.sedona.spark.SedonaContext
val sedona = SedonaContext.create(config)