栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

sqoop import hive parquet表timestamp,decimal转换问题

sqoop import hive parquet表timestamp,decimal转换问题

1、时间转换问题:timestamp、date,time

以上时间类型会被sqoop转成int,long型,无法直接转成时间类型

1)转成long型,再用from_unixtime转回来,才能看时间(太麻烦)-----parquet表的类型对应为bigint
select *, from_unixtime(cast(SOURCE_LOAD_DATE as BIGINT) DIV 1000000) as SOURCE_LOAD_DATE from table_name;

2)直接转成string型(直观,可以直接看)------parquet表的数据类型对应为string
另外: 处理datetime中有null的情况
在sql connnect中加入:zeroDateTimeBehavior=convertToNull

–connect jdbc:mysql://192.168.1.100/test?zeroDateTimeBehavior=convertToNull

2、浮点类型(float,double,decimal)

sqoop导数据使用avro组件,启用小数(decimal) 必须要加以下参数:

-Dsqoop.avro.decimal_padding.enable=true -Dsqoop.parquet.logical_types.decimal.enable=true
-Dsqoop.avro.logical_types.decimal.default.precision=38
-Dsqoop.avro.logical_types.decimal.default.scale=10

—parquet中对应的数据类型为decimal(precision,scale),如decimal(19,3)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/679908.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号