SedonaSQL 支持多种参数。修改它们的取值有以下几种方式:
sparkSession = SparkSession.builder(). config("spark.serializer","org.apache.spark.serializer.KryoSerializer"). config("spark.kryo.registrator", "org.apache.sedona.core.serde.SedonaKryoRegistrator"). config("sedona.global.index","true") master("local[*]").appName("mySedonaSQLdemo").getOrCreate()
val sedonaConf = new SedonaConf(sparkSession.conf) println(sedonaConf)
sparkSession.conf.set("sedona.global.index","false")
此外,你也可以在参数名前添加 spark 前缀,例如:
sparkSession.conf.set("spark.sedona.global.index","false")
不过,所有通过 spark 前缀设置的参数都会被 Spark 所识别,这意味着你可以提前通过 spark-defaults.conf 或 Spark on Kubernetes 的配置来设定这些参数。
如果同一个参数同时通过 sedona 和 spark.sedona 两种前缀进行设置,则 sedona 前缀设置的值会覆盖 spark.sedona 前缀设置的值。
| 参数 | 说明 | 默认值 | 可选值 |
|---|---|---|---|
sedona.global.index | 是否启用空间索引(目前仅支持 SQL 范围连接与 SQL 距离连接) | true | true, false |
sedona.global.indextype | 空间索引类型,仅在 sedona.global.index 为 true 时生效 | rtree | rtree, quadtree |
spark.sedona.enableParserExtension | 启用解析器扩展,用于在 SQL DDL 语句中解析 GEOMETRY 数据类型 | true | true, false |
| 参数 | 说明 | 默认值 | 可选值 |
|---|---|---|---|
sedona.join.autoBroadcastJoinThreshold | 执行连接时,将被广播到所有工作节点的表的最大字节大小。设为 -1 可禁用自动广播。 | 与 spark.sql.autoBroadcastJoinThreshold 相同 | 带有字节后缀的整数,例如 10MB 或 512KB |
sedona.join.gridtype | 连接查询使用的空间分区网格类型 | kdbtree | quadtree, kdbtree |
spark.sedona.join.knn.includeTieBreakers | KNN 连接结果是否包含所有并列项,可能返回多于 k 个结果 | false | true, false |
sedona.join.indexbuildside | (高级) Sedona 在哪一侧构建空间索引 | left | left, right |
sedona.join.numpartition | (高级) 连接查询双方的分区数 | -1(使用现有分区数) | 任意整数 |
sedona.join.spatitionside | (高级) 空间分区阶段的主导侧 | left | left, right |
sedona.join.optimizationmode | (高级) Sedona 何时优化空间连接 SQL 查询 | nonequi | all(始终优化,包括等值连接),none(禁用优化),nonequi(仅优化非等值连接) |
| 参数 | 说明 | 默认值 | 可选值 | 起始版本 |
|---|---|---|---|---|
spark.sedona.crs.geotools | 控制 ST_Transform 中 CRS 转换所使用的库 | raster | none(全部使用 proj4sedona),raster(矢量使用 proj4sedona,栅格使用 GeoTools),all(全部使用 GeoTools —— 旧版行为) | v1.9.0 |
spark.sedona.crs.url.base | CRS 定义服务器的基础 URL,用于通过 HTTP 解析权威机构代码(如 EPSG)。设置后,ST_Transform 会先查询该 URL 提供者,再回退到内置定义。 | (空 —— 禁用) | 例如 https://crs.example.com | v1.9.0 |
spark.sedona.crs.url.pathTemplate | 附加在 spark.sedona.crs.url.base 之后的 URL 路径模板。占位符 {authority} 和 {code} 会在运行时被替换。 | /{authority}/{code}.json | 例如 /epsg/{code}.json | v1.9.0 |
spark.sedona.crs.url.format | URL 提供者返回的 CRS 定义格式 | projjson | projjson、proj、wkt1(OGC WKT1)、wkt2(ISO 19162 WKT2) | v1.9.0 |