项目github地址:
bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步
hive sql 中有时间戳转日期的函数
from_unixtime(BIGINT unixtime [, STRING format])
这里面的unixtime,输入单位是秒,也就一个十位的BIGINT。但是我们实际中用的时间戳,一般都是13位的到毫秒时间戳,如果直接将该时间戳输入方法中会有错误。
如果是13位时间戳,可以这么使用
from_unixtime(cast(timestamp/1000 as bigint)) as xxx_time
timestamp/1000 是一个double类型,直接cast变成bigint就可以了。
当然还可以在方法后面填入可选参数为日期格式。
hive sql 中有时间戳转日期的函数from_unixtime(BIGINT unixtime [, STRING format])这里面的unixtime,输入单位是秒,也就一个十位的BIGINT。但是我们实际中用的时间戳,一般都是13位的到毫秒时间戳,如果直接将该时间戳输入方法中会有错误。如果是13位时间戳,可以这么使用from_unixtime(cast(timestamp/1000 as bigint)) as xxx_timetimestamp/1000 是一个double类型,直
Hive是一个数据仓库基础的应用工具,在Hadoop中用来处理结构化数据,它架构在Hadoop之上,通过SQL来对数据进行操作,了解SQL的人,学起来毫不费力。
Hive 查询操作过程严格遵守Hadoop MapReduce 的作业执行模型,Hive 将用户的Hive SQL 语句通过解释器转换为MapReduce 作业提交到Hadoop 集群上,Hadoop 监控作业执行过程,然后返回作业执行结果给用户。Hive 并非为联机事务处理而设计,Hive 并不提供实时的查询和基于行级的数据更新操作。Hive 的最佳使用场合是大数据集的批处理作业,例如,网络日志分析。
下面我们就为大家总结了一些H
HIVE SQL中13位毫秒时间戳转化为标准日期
from_unixtime(BIGINT unixtime [, STRING format])
from_unixtime函数 使用时间戳单位必须是秒
create_time为BIGINT格式,转化为秒
create_time/1000 但结果变为DOUBLE格式
用cast先转换
from_unixtime(cast(create_time/1...
数据类型是编程语言中,在其数据结构上定义的相同值类型的集合以及对该相同值集合的一组操作。而数据类型的值存储离不开变量,因此变量的一个作用就是使用它来存储相同值集的数据类型。数据类型决定了如何将代表这些值的集合存储在计算机的内存中。变量一般遵循先声明后使用的原则。而在数据库中,变量就是字段,用字段来表示一组相同值类型的集合,其实也是先声明后使用的原则。
PostgreSQL支持丰富的数据类型,包括一般的数据类型和非常规的数据类型。一般数据类型包括数值型,货币类型,字符类型,日期类型,布尔类型,枚举类型等
select date_format(FROM_UNIXTIME(1571709884000/1000))
说明:13位的整型除以1000等于时间戳timestamp
将时间戳类型转化为日期类型使用from_unixtime
原因:Java的date默认精度是毫秒,由date转换成的时间戳是13位的,而c++,php生成的时间默认就是10位的,精度是秒
如果要将日期类型转化为时间戳类型使用 un...
在解析埋点数据时会遇到两种不同的日期格式:yyyymmdd和yyyy-mm-dd,此类型之间的转换主要有两种思路:
第一种方法:from_unixtime+unix_timestamp
--20180905转成2018-09-05
select from_unixtime(unix_timestamp('20180905','yyyymmdd'),'yyyy-mm-dd')
from dw....
时间戳转成日期
hive : select distinct from_unixtime(1441565203,‘yyyy/MM/dd HH:mm:ss’) from test_date;
sqlSever: CONVERT ( VARCHAR ( 10 ), DATEADD ...
javax.jdo.option.ConnectionURL
jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true
JDBC connect string for a JDBC metastore
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
Driver class name for a JDBC metastore
javax.jdo.option.ConnectionUserName
username to use against metastore database
javax.jdo.option.ConnectionPassword
hadoop
password to use against metastore database
5.安装hive和mysq完成后,将mysql的连接jar包拷贝到$HIVE_HOME/lib目录下
如果出现没有权限的问题,在mysql授权(在安装mysql的机器上执行)
mysql -uroot -p
#(执行下面的语句 *.*:所有库下的所有表 %:任何IP地址或主机都可以连接)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;
6. Jline包版本不一致的问题,需要拷贝hive的lib目录中jline.2.12.jar的jar包替换掉hadoop中的
/home/hadoop/app/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar
启动hive
bin/hive
----------------------------------------------------------------------------------------------------
Hive几种使用方式:
1.Hive交互shell bin/hive
2.Hive JDBC服务(参考java jdbc连接mysql)
3.hive启动为一个服务器,来对外提供服务
bin/hiveserver2
nohup bin/hiveserver2 1>/var/log/hiveserver.log 2>/var/log/hiveserver.err &
启动成功后,可以在别的节点上用beeline去连接
bin/beeline -u jdbc:hive2://mini1:10000 -n root
bin/beeline
! connect jdbc:hive2://mini1:10000
4.Hive命令
hive -e ‘sql’
bin/hive -e 'select * from t_test'
select from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss')
select from_unixtime(unix_timestamp(),'yyyy-MM-dd')
业务中有时存放的是包含毫秒的整数,需要先转换为秒
在HiveSQL中,可以使用FROM_UNIXTIME函数将时间戳转换成日期格式,例如:
SELECT FROM_UNIXTIME(1612345678,'yyyy-MM-dd HH:mm:ss');
这将返回一个字符串,表示时间戳对应的日期和时间,例如:"2021-02-03 12:34:38"。