如何解决Azure Databricks:使用 Spark SQL 进行地理空间查询
目前我有以下几点:
- 带有设备、位置和时间戳的表的数据块;
- Web Api 在 minLat、minLon、maxLat、maxLon 中接收请求并创建一个 sql 查询,lat 介于 minLat 和 maxLat 之间,lon 介于 minLon 和 maxLon 之间;
- 接收从 Web API 生成的查询并在数据块中创建与集群的 JDBC 连接以执行查询的函数;
我想看看我是否可以用一些空间库改进“minLat 和 maxLat 之间的纬度以及 minLon 和 maxLon 之间的 lon”。我检查过的一个这样的例子是 GeoSpark。这里的问题是当前版本的 GeoSpark(和 GeoSParksql)仅适用于 spark v2.3,并且 databricks 中支持的运行时不再适用于该版本。
知道我能做什么吗?
注意:我现在不能偏离 sql。
解决方法
GeoSpark 以 Apache Sedona project 的身份加入了 Apache 基金会,支持 Spark 3.0 的版本大约在 2 周前发布,因此您可以像使用 GeoSpark 一样使用它。
附言为了自动注册函数,我们可以创建类似这样的东西,编译成 jar,然后使用 --conf spark.sql.extensions=...SomeExtensions
配置 Spark:
class SomeExtensions extends (SparkSessionExtensions => Unit) {
def apply(e: SparkSessionExtensions): Unit = {
e.injectCheckRule(spark => {
// Setup something
_ => Unit
})
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。