python/sedona/spark/register/java_libs.py (55 lines of code) (raw):

# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. from enum import Enum class SedonaJvmLib(Enum): JoinParams = "org.apache.sedona.python.wrapper.adapters.JoinParamsAdapter" Adapter = "org.apache.sedona.sql.utils.Adapter" StructuredAdapter = "org.apache.spark.sql.sedona_sql.adapters.StructuredAdapter" JoinQuery = "org.apache.sedona.core.spatialOperator.JoinQuery" KNNQuery = "org.apache.sedona.core.spatialOperator.KNNQuery" RangeQuery = "org.apache.sedona.core.spatialOperator.RangeQuery" Envelope = "org.locationtech.jts.geom.Envelope" Geography = "org.apache.sedona.common.geometryObjects.Geography" GeoSerializerData = ( "org.apache.sedona.python.wrapper.adapters.GeoSparkPythonConverter" ) GeometryAdapter = "org.apache.sedona.python.wrapper.adapters.GeometryAdapter" PointRDD = "org.apache.sedona.core.spatialRDD.PointRDD" PolygonRDD = "org.apache.sedona.core.spatialRDD.PolygonRDD" CircleRDD = "org.apache.sedona.core.spatialRDD.CircleRDD" LineStringRDD = "org.apache.sedona.core.spatialRDD.LineStringRDD" RectangleRDD = "org.apache.sedona.core.spatialRDD.RectangleRDD" SpatialRDD = "org.apache.sedona.core.spatialRDD.SpatialRDD" FileDataSplitter = "org.apache.sedona.common.enums.FileDataSplitter" GeoJsonReader = "org.apache.sedona.core.formatMapper.GeoJsonReader" ShapeFileReader = ( "org.apache.sedona.core.formatMapper.shapefileParser.ShapefileReader" ) SedonaSQLRegistrator = "org.apache.sedona.sql.utils.SedonaSQLRegistrator" StorageLevel = "org.apache.spark.storage.StorageLevel" GridType = "org.apache.sedona.core.enums.GridType" IndexType = "org.apache.sedona.core.enums.IndexType" AdapterWrapper = "org.apache.sedona.python.wrapper.utils.PythonAdapterWrapper" WktReader = "org.apache.sedona.core.formatMapper.WktReader" RawJvmIndexRDDSetter = ( "org.apache.sedona.python.wrapper.adapters.RawJvmIndexRDDSetter" ) SpatialObjectLoaderAdapter = ( "org.apache.sedona.python.wrapper.adapters.SpatialObjectLoaderAdapter" ) WkbReader = "org.apache.sedona.core.formatMapper.WkbReader" EnvelopeAdapter = "org.apache.sedona.python.wrapper.adapters.EnvelopeAdapter" PythonConverter = "org.apache.sedona.python.wrapper.adapters.PythonConverter" PythonRddToJavaRDDAdapter = ( "org.apache.sedona.python.wrapper.adapters.PythonRddToJavaRDDAdapter" ) st_constructors = "org.apache.spark.sql.sedona_sql.expressions.st_constructors" st_functions = "org.apache.spark.sql.sedona_sql.expressions.st_functions" st_predicates = "org.apache.spark.sql.sedona_sql.expressions.st_predicates" st_aggregates = "org.apache.spark.sql.sedona_sql.expressions.st_aggregates" SedonaContext = "org.apache.sedona.spark.SedonaContext" @classmethod def from_str(cls, geo_lib: str) -> "SedonaJvmLib": try: lib = getattr(cls, geo_lib.upper()) except AttributeError: raise AttributeError(f"{cls.__class__.__name__} has no {geo_lib} attribute") return lib