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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • websocket即时通讯

    websocket即时通讯目录一、websocket简介二、背景三、优点1、控制开销2、实时性更强3、保持连接状态4、更好的二进制支持5、支持扩展和更好的实现压缩效果四、原理1、客户端、服务器建立TCP连接,三次握手。2、TCP连接成功后,客户端通过HTTP协议向服务器传送websocket支持的版本号信息。(开始前的HTTP握手)3、服务器收到客户端的握手请求后,同样采用HTTP协议回馈数据。4、当收到了连接成功的消息后,通过TCP通道进行传输通信。五、websocket和socket的关系六、SuperWebSocket实现服务

    2022年7月11日
    19
  • javaMD5加密工具类

    javaMD5加密工具类importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmException;/***CreatedbyZhou.xyon2016/12/27.*/publicclassEncryMD5{/***String->MD5*/publi

    2022年7月15日
    17
  • webstorm怎么激活破解方法

    webstorm怎么激活破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    41
  • 锁定屏幕相关知识「建议收藏」

    锁定屏幕相关知识「建议收藏」  (1)LockWorkStation()锁定当前用户返回到登录界面 (2)HKEY_CURRENT_USER/Software/Microsoft/Windows/CurentVersion/Polioies/Explores下的”NoSaveSetting”值为1则禁止修改桌面(需要重启) (3)HKEY_CURRENT_USER/Software//microsof

    2022年7月21日
    19
  • 信道带宽与信号带宽「建议收藏」

    信道带宽与信号带宽「建议收藏」信号带宽是信号频谱的宽度,也就是信号的最高频率分量与最低频率分量之差,譬如,一个由数个正弦波叠加成的方波信号,其最低频率分量是其基频,假定为f=2kHz,其最高频率分量是其7次谐波频率,即7f=7×2=14kHz,因此该信号带宽为7f-f=14-2=12kHz。信道带宽则限定了允许通过该信道的信号下限频率和上限频率,也就是限定了一个频率通带。比如一个信道允许的通带为1.5kHz至15k…

    2022年10月11日
    3
  • java递归查询父节点_java递归例子

    java递归查询父节点_java递归例子一、需求项目里要让用户能够设置所选择教材的章课节,以针对章课节提供相应的题目供用户做题。设计:用户设置了教材后,首次登录,进行章节设置时。默认为用户选择第一章、第一课、第一节。思路:用户访问页面,章一栏显示所有章,课一栏显示第一章下所有课程,节一栏显示第一章、第一课下的所有节。然后获取用户当前选择的章课节信息。如果当前用户没有设置过该教材的章课节,就为其设置默认的第一章、第一课、第一节。数据库设计…

    2022年9月18日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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