Ganos Spark 函数
Ganos Spark 函数
成功构建SparkSession对象后,就可以通过read方法加载数据为DataFrame对象了。Ganos Spark提供了一系列UDF时空算子实现基于SQL的时空数据查询,这些时空算子主要分为:
1. SpatialConstructors空间构造函数
ST_GeomFromGeoHash
Geometry st_geomFromGeoHash(String geohash, Int prec)
给定GeoHash编码,放回该编码对应的GeoHash值,GeoHash的精度为prec位
ST_GeomFromWKT
Geometry st_geomFromWKT(String wkt)
从给定WKT格式表示的空间对象描述转化为Geometry对象
ST_GeomFromWKB
Geometry st_geomFromWKB(Array[Byte] wkb)
从给定WKB格式表示的空间对象描述转化为Geometry对象
ST_LineFromText
LineString st_lineFromText(String wkt)
从给定WKB格式表示的空间线对象描述转化为LineString对象
ST_MakeBox2D
Geometry st_makeBox2D(Point lowerLeft, Point upperRight)
给定左下(lowerLeft)与右上(upperRight)点对象,生成它们所表示的空间范围的Geometry对象
ST_MakeBBOX
Geometry st_makeBBOX(Double lowerX, Double lowerY, Double upperX, Double upperY)
按照给定边界的坐标值生成所表示的空间范围的Geometry对象
ST_MakePolygon
Polygon st_makePolygon(LineString shell)
生成线对象shell所包围的区域的Polygon对象,shell必须为闭合线对象。
ST_MakePoint
Point st_makePoint(Double x, Double y)
给定x,y坐标,生成POINT对象
ST_MakeLine
LineString st_makeLine(Seq[Point] points)
给定一系列POINT对象,生成它们所构成的LineString对象
ST_MakePointM
Point st_makePointM(Double x, Double y, Double m)
给定x,y,m坐标值,生成POINT对象
ST_MLineFromText
MultiLineString st_mLineFromText(String wkt)
生成wkt格式表示的MultiLineString对象
ST_MPointFromText
MultiPoint st_mPointFromText(String wkt)
生成wkt格式表示的MultiPoint对象
ST_MPolyFromText
MultiPolygon st_mPolyFromText(String wkt)
生成wkt格式表示的MultiPolygon对象
ST_Point
Point st_point(Double x, Double y)
等同于ST_MakePoint, 即给定x,y坐标,生成POINT对象。
ST_PointFromGeoHash
Point st_pointFromGeoHash(String geohash, Int prec)
返回由Geohash字符串geohash(base-32编码)定义的边界框的几何中心处的Point,其精度为prec位。
ST_PointFromText
Point st_pointFromText(String wkt)
ST_PointFromWKB
Point st_pointFromWKB(Array[Byte] wkb)
从给定WKB格式表示的空间对象描述生成Point对象
ST_Polygon
Polygon st_polygon(LineString shell)
从给定LineString空间对象生成Polygon对象
ST_PolygonFromText
Polygon st_polygonFromText(String wkt)
从给定WKT格式表示的空间对象描述生成Polygon对象
2. Geometry Accessors函数
ST_Boundary
Geometry st_boundary(Geometry geom)
使用 ST_Boundary 函数可确定源 ST_Geometry 的边界
ST_CoordDim
Int st_coordDim(Geometry geom)
要评估几何的维度,请使用 ST_Dimension 函数,该函数处理 ST_Geometry 要素并以整数形式返回维度.
ST_Dimension
Int st_dimension(Geometry geom)
要评估几何的维度,请使用 ST_Dimension 函数,该函数处理 ST_Geometry 要素并以整数形式返回维度。
ST_Envelope
Geometry st_envelope(Geometry geom)
T_Envelope 函数处理 ST_Geometry 并返回表示源 ST_Geometry 包络矩形的 ST_Geometry。
ST_ExteriorRing
LineString st_exteriorRing(Geometry geom)
以 ST_LineString 形式返回 ST_Polygon 的外部环
ST_GeometryN
Int st_geometryN(Geometry geom, Int n)
可以使用 ST_GeometryN 函数确定多部分几何中位置 N 处存在哪种几何;N 是您为此函数提供的数值。例如,如果您想要返回多点几何的第2个点,则可以在执行此函数时设置n为“2”。
ST_InteriorRingN
Int st_interiorRingN(Geometry geom, Int n)
评估 STPolygon 和索引并以 ST_LineString 形式返回第 _n 个内部环
ST_IsClosed
Boolean st_isClosed(Geometry geom)
使用 ST_IsClosed 谓词函数可确定线串是否闭合;如果线串的起点与终点相交,则 ST_IsClosed 返回 TRUE。
ST_IsCollection
Boolean st_isCollection(Geometry geom)
判断geom对象是否为几何对象集合。
ST_IsEmpty
Boolean st_isEmpty(Geometry geom)
ST_IsEmpty 谓词函数用于确定几何是否为空。该函数分析 ST_Geometry,如果 ST_Geometry 为空,则返回 1 (TRUE);如果不为空,则返回 0 (FALSE)
ST_IsRing
Boolean st_isRing(Geometry geom)
ST_IsRing 以 ST_LineString 作为输入参数,如果是环(如 ST_LineString 是闭合的简单线串),则返回 1;否则返回 0
ST_IsSimple
Boolean st_isSimple(Geometry geom)
ST_IsSimple 谓词函数用于确定 ST_LineString、ST_MultiPoint 或 ST_MultiLineString 是简单的还是非简单的
ST_IsValid
Boolean st_isValid(Geometry geom)
ST_IsSimple 谓词函数用于确定集合对象geom是否为有效的集合对象。
ST_NumGeometries
Int st_numGeometries(Geometry geom)
您可能想要确定多部分几何中各种几何的数目,例如 ST_MultiPoint、ST_MultiLineString 和 ST_MultiPolygon 的数目。为此,请使用 ST_NumGeometries 谓词函数。此函数返回几何集合中各种元素的计数。
ST_NumPoints
Int st_numPoints(Geometry geom)
评估 ST_LineString 并以整数数形式返回其序列中的点数
ST_PointN
Point st_pointN(Geometry geom, Int n)
获取 STLineString 和第 _n 个点的索引,然后返回该点
ST_X
Float st_X(Geometry geom)
以双精度数形式返回点数据类型的 x 坐标值
ST_Y
Float st_y(Geometry geom)
以双精度数形式返回点数据类型的 y 坐标值
3. Geometry Cast函数
ST_CastToPoint
Point st_castToPoint(Geometry g)
将Geometry类型转换为Point类型
ST_CastToPolygon
Polygon st_castToPolygon(Geometry g)
ST_CastToLineString
LineString st_castToLineString(Geometry g)
将Geometry类型转换为LineString类型
ST_ByteArray
Array[Byte] st_byteArray(String s)
将字符串类型按照UTF-8转换为Array[Byte]类型
4. Geometry Editors函数
ST_Translate
Geometry st_translate(Geometry geom, Double deltaX, Double deltaY)
返回将Geometry对象按照矢量(deltaX,deltaY)位移后生成的新的Geometry对象。
5. Geometry Outputs函数
ST_AsBinary
Array[Byte] st_asBinary(Geometry geom)
返回Geometry的Array[Byte] 表示方式。
ST_AsGeoJSON
String st_asGeoJSON(Geometry geom)
返回Geometry的GeoJSON表示方式。
ST_AsLatLonText
String st_asLatLonText(Point p)
返回描述Point对象的纬度和经度的字符串描述,以度,分和秒为单位(这假设p的坐标单位是纬度和经度)
ST_AsText
String st_asText(Geometry geom)
返回Geometry的字符串表示方式。
ST_GeoHash
String st_geoHash(Geometry geom, Int prec)
返回Geometry的GeoHash编码表示方式,精度位数为prec。
6. Spatial Relationships函数
ST_Contains
Boolean st_contains(Geometry a, Geometry b)
当且仅当a的外部没有b的位置时,返回true,并且b的内部的至少一个点位于a的内部。
ST_Covers
Boolean st_covers(Geometry a, Geometry b)
如果属于b的任意一点都位于a的内部,则返回true
ST_Crosses
Boolean st_crosses(Geometry a, Geometry b)
如果a与b有部分相同区域,但不是全部,则放回true
ST_Disjoint
Boolean st_disjoint(Geometry a, Geometry b)
等同于“NOT ST_Intersects”, 即a与b没有任何相交的部分
ST_Equals
Boolean st_equals(Geometry a, Geometry b)
如果a与b完全想同,则返回true
ST_Intersects
Boolean st_intersects(Geometry a, Geometry b)
如果a与b有部分会全部区域相同,则放回true
ST_Overlaps
Boolean st_overlaps(Geometry a, Geometry b)
如果几何具有一些但不是所有的共同点,具有相同的尺寸,并且两个几何的内部的交点与几何本身具有相同的尺寸,则返回true
ST_Touches
Boolean st_touches(Geometry a, Geometry b)
如果a与b至少有一个共同PIOINT对象,并且a与b内部没有任何相交部分,则返回true。
ST_Within
Boolean st_within(Geometry a, Geometry b)
如果a完全位于b内部,则返回true
ST_Relate
String st_relate(Geometry a, Geometry b)
返回描述两个几何的内部,边界和外部之间的交叉点的维度的“九交模型”交互矩阵模式。
ST_RelateBool
Boolean st_relateBool(Geometry a, Geometry b, String mask)
如果“九交模型”交互矩阵掩码掩码与从st_relate(a,b)获得的交互矩阵模式匹配,则返回true。
ST_Area
Double st_area(Geometry g)
放回Geometry的面积
ST_Centroid
Point st_centroid(Geometry g)
放回Geometry的几何中心
ST_ClosestPoint
Point st_closestPoint(Geometry a, Geometry b)
返回a与b距离最近的POINT对象
ST_Distance
Double st_distance(Geometry a, Geometry b)
以坐标参考系统为单位返回两个几何之间的2D笛卡尔距离(例如,EPSG的度数:4236)。
ST_DistanceSphere
Double st_distanceSphere(Geometry a, Geometry b)
假设球形地球,近似两个经度/纬度几何之间的最小距离。
ST_Length
Double st_length(Geometry geom)
以坐标参考系统为单位返回线性几何的2D路径长度或面几何的周长(例如,EPSG的度数:4236)。对于其他几何类型(例如Point),返回0.0。
ST_LengthSphere
Double st_lengthSphere(LineString line)
使用球形地球模型近似LineString几何的2D路径长度。返回的长度以米为单位。近似值在st_lengthSpheroid的0.3%范围内,并且在计算上更有效。
7. Geometry Processing函数
ST_antimeridianSafeGeom
Geometry st_antimeridianSafeGeom(Geometry geom)
如果geom跨越antimeridian,则尝试将几何转换为“antimeridian-safe”的等效形式(即输出几何由BOX(-180 -90,180,90)覆盖)。在某些情况下,此方法可能会失败,在这种情况下将返回输入几何,并将记录错误。
ST_BufferPoint
Geometry st_bufferPoint(Point p, Double buffer)
返回覆盖Point p给定半径内所有点的几何,其中radius以米为单位
ST_ConvexHull
Geometry st_convexHull(Geometry geom)
聚合函数。几何体的凸包表示包含聚合行中所有几何图形的最小凸面几何体。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论