After you create a SparkSession object, you can call the read method to load data from the SparkSession object to a DataFrame object. Ganos Spark provides a series of spatio-temporal user-defined functions (UDFs). These UDFs allow you to query spatio-temporal data based on SQL. This topic describes the spatio-temporal UDFs.

Spatial constructor functions

  • ST_GeomFromGeoHash
    Geometry st_geomFromGeoHash(String geohash, Int prec)

    Returns a GeoHash value from a given GeoHash code. The prec parameter specifies the precision of a GeoHash value.

  • ST_GeomFromWKT
    Geometry st_geomFromWKT(String wkt)

    Constructs a geometry from a well-known text (WKT) representation.

  • ST_GeomFromWKB
    Geometry st_geomFromWKB(Array[Byte] wkb)

    Constructs a geometry from a well-known binary (WKB) representation.

  • ST_LineFromText
    LineString st_lineFromText(String wkt)

    Constructs a geometry based on the given points that represent the lower left and upper right corners of the geometry.

  • ST_MakeBBOX
    Geometry st_makeBBOX(Double lowerX, Double lowerY, Double upperX, Double upperY)

    Constructs a geometry based on the given boundary coordinates.

  • ST_MakePolygon
    Polygon st_makePolygon(LineString shell)

    Constructs a polygon defined by a given shell. The input shell must be a closed linestring.

  • ST_MakePoint
    Point st_makePoint(Double x, Double y)

    Constructs a point based on the given x-axis and y-axis.

  • ST_MakeLine
    LineString st_makeLine(Seq[Point] points)

    Constructs a linestring based on the given points.

  • ST_MakePointM
    Point st_makePointM(Double x, Double y, Double m)

    Constructs a point based on the given x-axis, y-axis, and m-axis.

  • ST_MLineFromText
    MultiLineString st_mLineFromText(String wkt)

    Constructs a multi-linestring from a given WKT representation.

  • ST_MPolyFromText
    MultiPolygon st_mPolyFromText(String wkt)

    Constructs a multi-polygon from a given WKT representation.

  • ST_Point
    Point st_point(Double x, Double y)

    Constructs a point based on the given x-axis and y-axis. This function is equivalent to ST_MakePoint.

  • ST_PointFromGeoHash
    Point st_pointFromGeoHash(String geohash, Int prec)

    Returns the point at the geometric center of the bounding box defined by a Base32-encoded GeoHash value. The prec parameter specifies the precision of the GeoHash value.

  • ST_PointFromText
    Point st_pointFromText(String wkt)
  • ST_PointFromWKB
    Point st_pointFromWKB(Array[Byte] wkb)

    Constructs a point from a given WKB representation.

  • ST_Polygon
    Polygon st_polygon(LineString shell)

    Constructs a polygon from a given linestring.

  • ST_PolygonFromText
    Polygon st_polygonFromText(String wkt)

    Constructs a polygon from a given WKT representation.

Geometry accessor functions

  • ST_Boundary
    Geometry st_boundary(Geometry geom)

    Returns the boundary of an ST_Geometry.

  • ST_CoordDim
    Int st_coordDim(Geometry geom)

  • ST_Dimension
    Int st_dimension(Geometry geom)

    Processes the ST_Geometry element and returns the dimension of the geometry. The dimension is an integer. This function is used to evaluate the dimension of the geometry.

  • ST_Envelope
    Geometry st_envelope(Geometry geom)

    Processes the ST_Geometry element and returns the minimum bounding box for the supplied geometry. This bounding box can be used as an ST_Geometry.

  • ST_ExteriorRing
    LineString st_exteriorRing(Geometry geom)

    Returns an ST_LineString that represents the exterior ring of an ST_Polygon geometry.

  • ST_GeometryN
    Int st_geometryN(Geometry geom, Int n)

    Returns an ST_LineString that represents the Nth interior ring of a given ST_Polygon geometry.

  • ST_IsClosed
    Boolean st_isClosed(Geometry geom)

    Returns a value that indicates whether a linestring is closed. TRUE is returned if the linestring is closed.

  • ST_IsCollection
    Boolean st_isCollection(Geometry geom)

    Returns a value that indicates whether a geom object is a collection of geometry objects.

  • ST_IsEmpty
    Boolean st_isEmpty(Geometry geom)

    Returns a value that indicates whether a geometry is empty. This function is used to verify an ST_Geometry. If the ST_Geometry is empty. 1 (TRUE) is returned. If it is not empty, 0 (FALSE) is returned.

  • ST_IsRing
    Boolean st_isRing(Geometry geom)

    Returns a value that indicates whether a given ST_LineString is a ring. If the ST_LineString is a ring, 1 is returned. If the ST_LineString is not a ring, 0 is returned.

  • ST_IsSimple
    Boolean st_isSimple(Geometry geom)

    Returns a value that indicates whether a given ST_LineString, ST_MultiPoint, or ST_MultiLineString is simple.

  • ST_IsValid
    Boolean st_isValid(Geometry geom)

    Returns a value that indicates whether a given geom object is a valid collection of geometry objects.

  • ST_NumGeometries
    Int st_numPoints(Geometry geom)

    Returns the number of geometries of a given type in a geometry collection, such as the number of ST_MultiPoint, ST_MultiLineString, or ST_MultiPolygon geometries. This function returns the count of various elements in a geometry collection.

  • ST_NumPoints
    Int st_numPoints(Geometry geom)

    Returns the number of points in a given ST_LineString.

  • ST_PointN
    Point st_pointN(Geometry geom, Int n)

    Returns the Nth point in a given ST_LineString.

  • ST_X
    Float st_X(Geometry geom)

    Returns a double-precision number that indicates the x-axis of a point.

  • ST_Y
    Float st_y(Geometry geom)

    Returns a double-precision number that indicates the y-axis of a point.

Geometry cast functions

  • ST_CastToPoint
    Point st_castToPoint(Geometry g)

    Converts a geometry to a point.

  • ST_CastToPolygon
    Polygon st_castToPolygon(Geometry g)

    Converts a geometry to a polygon.

  • ST_CastToLineString
    LineString st_castToLineString(Geometry g)

    Converts a geometry to a linestring.

  • ST_ByteArray
    Array[Byte] st_byteArray(String s)

    Converts a string to a byte array by using UTF-8 encoding.

Geometry editor functions

ST_Translate
Array[Byte] st_asBinary(Geometry geom)

Returns a new geometry whose coordinates are translated from deltaX and deltaY.

Geometry output functions

  • ST_AsBinary
    Array[Byte] st_asBinary(Geometry geom)

    Returns the byte array representation of a geometry.

  • ST_AsGeoJSON
    String st_asGeoJSON(Geometry geom)

    Returns the GeoJSON representation of a geometry.

  • ST_AsLatLonText
    String st_asLatLonText(Point p)

    Returns the Degrees, Minutes, and Seconds representation of a point. The point is projected in latitude and longitude.

  • ST_AsText
    String st_asText(Geometry geom)

    Returns the WKT representation of a geometry.

  • ST_GeoHash
    String st_geoHash(Geometry geom, Int prec)

    Returns the GeoHash representation of a geometry. The prec argument specifies the precision.

Spatial relationship functions

  • ST_Contains
    Boolean st_contains(Geometry a, Geometry b)

    Returns true if and only if no points of Geometry B lie in the exterior of Geometry A, and at least one point of the interior of Geometry B lies in the interior of Geometry A.

  • ST_Covers
    Boolean st_covers(Geometry a, Geometry b)

    Returns true if no point in Geometry B is outside Geometry A.

  • ST_Crosses
    Boolean st_crosses(Geometry a, Geometry b)

    Returns true if Geometry A and Geometry B are partially intersected. This means that the geometries have some, but not all interior points in common.

  • ST_Disjoint
    Boolean st_disjoint(Geometry a, Geometry b)

    Returns true if Geometry A and Geometry B are disjoint. This function is equivalent to NOT ST_Intersects.

  • ST_Equals
    Boolean st_equals(Geometry a, Geometry b)

    Returns true if Geometry A and Geometry B are spatially equal.

  • ST_Intersects
    Boolean st_intersects(Geometry a, Geometry b)

    Returns true if Geometry A and Geometry B share any portion of the space (intersected).

  • ST_Overlaps
    Boolean st_overlaps(Geometry a, Geometry b)

    Returns true if Geometry A and Geometry B that are equal in size share some points, and the intersection point and the geometries are equal in size.

  • ST_Touches
    Boolean st_touches(Geometry a, Geometry b)

    Returns true if Geometry A and Geometry B have at least one point in common, but they do not have any interior intersection.

  • ST_Within
    Boolean st_within(Geometry a, Geometry b)

    Returns true if Geometry A completely lies in the interior of Geometry B.

  • ST_Relate
    String st_relate(Geometry a, Geometry b)

    Returns the DE-9IM matrix pattern that shows the dimension of intersections between the interior, boundary, and exterior of two geometries.

  • ST_RelateBool
    Boolean st_relateBool(Geometry a, Geometry b, String mask)

    Returns true if the mask of the DE-9IM matrix pattern matches that of the DE-9IM matrix pattern returned by ST_Relate (a,b).

  • ST_Area
    Double st_area(Geometry g)

    Returns the area of a geometry.

  • ST_Centroid
    Point st_centroid(Geometry g)

    Returns the geometric center of a geometry.

  • ST_ClosestPoint
    Point st_closestPoint(Geometry a, Geometry b)

    Returns the point on Geometry A that is closest to Geometry B.

  • ST_Distance
    Double st_distance(Geometry a, Geometry b)

    Returns the 2-dimensional Cartesian distance between two geometries in projected units, such as EPSG:4236.

  • ST_DistanceSphere
    Double st_distanceSphere(Geometry a, Geometry b)

    Returns the minimum distance between two longitude/latitude geometries. It assumes a spherical earth.

  • ST_Length
    Double st_length(Geometry geom)

    Returns the 2-dimensional length of a line geometry or the perimeter of a plane geometry, such as EPSG:4236. The units are determined by the spatial reference system of the geometry. It returns 0.0 for other types of geometries, such as point.

  • ST_LengthSphere
    Double st_lengthSphere(LineString line)

    Returns the approximate 2-dimensional length of a linestring. It assumes a spherical earth. The returned length is measured in meters. The approximation is within 0.3% of ST_LengthSpheroid and this function increases the computation efficiency.

Geometry processing functions

  • ST_antimeridianSafeGeom
    Geometry st_antimeridianSafeGeom(Geometry geom)

    Attempts to convert the geometry into an equivalent form of "antimeridian-safe" if the geometry spans the antimeridian. For example, the output geometry is covered by BOX (-180 -90,180,90). In some cases, this method may fail. The input geometry will be returned and an error will be logged.

  • ST_BufferPoint
    Geometry st_bufferPoint(Point p, Double buffer)

    Returns a geometry that covers all points within a given radius of Point p. The radius is measured in meters.

  • ST_ConvexHull
    Geometry st_convexHull(Geometry geom)

    The convex hull of a geometry that represents the minimum convex geometry that encloses all geometries in the aggregated rows. This function is an aggregate function.