数据类型

使用Spark计算引擎访问表格存储时,您需要了解Spark数据类型、Scala中的值类型、表格存储中多元索引数据类型和表格存储表中数据类型的对应关系。使用过程中请确保Spark、Scala和表格存储中字段或值的数据类型相匹配。

基础数据类型

基础数据类型的支持情况请参见下表。

Spark数据类型

Scala中的值类型

多元索引数据类型

表中数据类型

ByteType

Byte

Long

Integer

ShortType

Short

Long

Integer

IntegerType

Int

Long

Integer

LongType

Long

Long

Integer

FloatType

Float

Double

Double

DoubleType

Double

Double

Double

StringType

String

Keyword/Text

String

BinaryType

Array[Byte]

Binary

Binary

BooleanType

Boolean

Boolean

Boolean

地理坐标(String JSON)

String(JSON)

Geopoint

String(JSON)

地理位置类型(Geopoint类型)

多元索引支持地理位置查询方式,将其提供到计算层,使Spark在能查询分析基础类型数据的同时,也可以结合地理位置对数据进行查询分析。

地理位置查询包括地理距离查询、地理矩形查询和地理多边形范围查询三种查询方式。地理位置查询广泛应用于物联网设备位置信息、骑手订单、打卡位置信息、快递地理信息等场景中。使用方式如下:

  • 使用表格存储的多元索引查询,详情请参见地理距离查询

  • 使用Spark SQL方式查询。

    • 地理半径圆查询

      select * from table where  val_geo = '{"centerPoint":"3,0", "distanceInMeter": 100000}' and name like 'ali%'
    • 地理矩形查询

      select * from table where geo = '{"topLeft":"8,0", "bottomRight": "0,10"}' and id in { 123 , 321 }
    • 地理多边形查询

      select * from table where geo = '{"points":["5,0", "5,1", "6,1", "6,10"]}'

地理位置数据类型的支持情况请参见下表。

Spark数据类型

Scala中的值类型

多元索引数据类型

表中数据类型

地理坐标(String JSON)半径圆

String(JSON)

Geopoint

STRING(JSON)

地理坐标(String JSON)矩形

String(JSON)

Geopoint

STRING(JSON)

地理坐标(String JSON)多边形

String(JSON)

Geopoint

STRING(JSON)