PostGIS在对象关系型数据库PostgreSQL上增加了存储管理空间数据的能力。DLA Ganos兼容PostGIS数据访问接口,可直接加载PostGIS中的矢量数据。本文以全球船舶轨迹AIS数据集为例,展示如何利用DLA Ganos加载PostGIS中的矢量数据。
操作步骤
- 初始化SparkSession:
//初始化SparkSession val spark = SparkSession.builder .appName("Simple Application") .config("spark.serializer", "org.apache.spark.serializer.KryoSerializer") .config("spark.sql.crossJoin.enabled", "true") .config("spark.kryo.registrator", classOf[GanosSparkKryoRegistrator].getName) .getOrCreate() import spark.implicits._ //SparkSession加载JTS包用于处理时空数据 spark.withJTS val sc = spark.sparkContext
- 加载数据:
//配置链接参数 val dsParams: JMap[String, String] = Map( "host" -> "PostgreSQL URL地址", "polardb.ganos" -> "true", "dbtype"->"postgis", "port"->"PostgreSQL接口", "schema"->"public", "database"->"数据库名称", "user"->"用户名", "passwd"->"密码") //加载AIS数据源 df = spark.read.format("ganos-geometry") .options(dsParams) .option("ganos.feature", "AIS") .load() df.show
- 输出结果: