sqoop从mysql导入hive parquet表timestamp,decimal转换问题

sqoop从mysql导入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

参考:https://avro.apache.org/docs/current/spec.html

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)

参考:https://archive.cloudera.com/cdh6/6.2.0/docs/sqoop-1.4.7-cdh6.2.0/SqoopUserGuide.html#_enabling_logical_types_in_avro_and_parquet_import_for_numbers

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100396.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • hadoop生态圈相关技术_hadoop的生态

    hadoop生态圈相关技术_hadoop的生态装完hadoop2.6.0-cdh5.5.2后put命令不好使,并且装完hive后导入本地数据也报错,put命令一直报这个错:hadoop@debian:~$hadoopfs-puthe.tt/aaa17/01/0223:37:52WARNhdfs.DFSClient:DataStreamerExceptionorg.apache.hadoop.ipc.RemoteE

    2022年10月30日
  • 【CAS】CAS原理「建议收藏」

    【CAS】CAS原理「建议收藏」CAS是所有原子类的底层原理,乐观锁主要采用CAS算法。CAS,比较并交换,是==JDK提供的非阻塞原子性操作,通过硬件保证比较-更新操作的原子性。==通常结合volatile保证共享变量的原子性。

    2022年10月16日
  • uniapp页面跳转传参_uni怎么做api跳转

    uniapp页面跳转传参_uni怎么做api跳转今天看Dcloud官网更新了个uni-app,据说一套代码三端发布(Android,iOS,微信小程序),果断一试。uni.navigateTo(OBJECT)保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。OBJECT参数说明参数 类型 必填 说明 url String 是 需要跳转的应用内非…

  • css中的clear_html clear用法

    css中的clear_html clear用法之前一直不明白clear的意义何在,一直以为clear就是去掉元素本身都浮动属性(即float:none)。最近再次接触到clear才弄明白clear的本来意义。下面直接看实例:1.没有清除浮动.div1{float:left;

  • 域渗透之 pre-auth用户枚举

    域渗透之pre-auth用户枚举适用场景与优点适用于在域外对域用户进行用户枚举和爆破使用Kerberospre-authbruteforcing的速度快,并且不会产生日志。适用场景:在

    2021年12月13日
  • cmd命令如何切换盘符_cmd命令修改盘符

    cmd命令如何切换盘符_cmd命令修改盘符返回上一级目录:cd..进入盘符根目录(例如进入E盘): e:

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号