spark sql 数据类型转换_Spark SQL 和 Hive 数据类型

在使用Spark交互过程中经常会出现一个需要面对问题,就不系统之间数据之间转换和映射。数据类型的映射和转换是一个不可避免的问题 。 同样的,在Spark SQL连接 Hive 的场景下, Catalyst 中定义的数据类型与 Hive 中的数据类型间的互相转换是一个重要的需求 。

在 SparkSQL 的 Hive 模块下,由 Hivelnspectors 负责 Catalyst 与 Hive 数据类型的转换,具体包括 4 个方面的功能 。数据解封( Data Unwrapping ),将 Hive 中的数据类型转换为 Catalyst 中的数据类型,称为unwrap 操作 。

数据封装( Data Wrapping ),将 Catalyst 中的数据类型转换为 Hive 中的数据类型,为wrap 操作 。

将 Catalyst 中的数据绑定相应的 Objectinspector 对象,对应 tolnspector 操作 。

从 Objectlnspector 对象中提取 Catalyst 数据,对应 inspectorToDataType 操作 。

DataTypeTolnspector 与 Data Wrapping

数据类型(Data Type )到 Objectlnspector 的映射过程,在 Hivelnspectors 中由 to Inspee-tor(dataType: DataType )方法完成。 直观上看,也比较容易确定彼此的关系。例如, Catalyst中的 MapType 数据类型,对应 Hive 中的 StandardMapObjectlnspector 对象 。目 前版本的 DataType 与 Objectlnspector 对象的对应关系如表所示。 在模式匹配过程中, Objectlnspector 统一从H

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值