美文网首页
hive日常总结

hive日常总结

作者: 时待吾 | 来源:发表于2017-04-21 17:04 被阅读7次

    spark sql 读取mysql 数据库和写入mysql数据库时,

    dataframe 字段比表字段多一个 直接写入会报错;

    将表添加一个字段后 让DataFrame 与表的字段形式统一后,则可以统一插入;

    dataframe 字段比表字段少一个 其余的一样 仍然可以写入成功。

    udf函数写的时候 首先注册  即便传参为空 注册的时候仍然使用 _  使用的时候依据参数进行传参,如果没有参数,仍然使用()

    def getNowStr():String = {

    val sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")

    sf.format(System.currentTimeMillis())

    }

    val nowStr = udf(DateTimeUtil.getNowStr _)

    df.withColumn("receivetime",nowStr())

    secure CRT  

    x shell

    createtableselect 会将原表中的数据完整复制一份,但表结构中的索引会丢失。

    createtablelike只会完整复制原表的建表语句,但不会复制数据

    create table if not exists t1 like t2

    insert into t2(a,b) select a,b from t1 where t1.recordtime > '2017-04-12 00:00:00' 表存在

    create table t2 as select * from t1 where t1.recordtime > '2017-04-12 00:00:00'

    select * into t2 from  t1 where t1.recordtime > '2017-04-12 00:00:00' 表不存在

    delete t1 from t1,t2 where t1.recordtime > t2.recordtime

    delete t1 from t1,(select min(recordtime) as minrt from t1) t2 where t1.recordtime >= t2.minrt

    and t1.recordtime <= TIMESTAMPADD(day,-7,CURRENT_DATE())

    TIMESTAMP(REPLACE(recordtime,"/","-"))

    rename tab1 to tb2

    相关文章

      网友评论

          本文标题:hive日常总结

          本文链接:https://www.haomeiwen.com/subject/ihodzttx.html