第一个参数是数据库名字
第二个参数是表的名字
#!/bin/python
#[START] DESCRIPTION
#@param the first argument is the name of database
#@param the second argument is the name of table
#[END] DESCRIPTION
#[START]conf
hive_bin = "/home/work/lib/hive_udw2/bin/hive"
#[END]conf
import sys
import subprocess
arglen = len(sys.argv)
if (arglen < 3) :
print "too less arguments"
exit(1)
db = sys.argv[1]
table = sys.argv[2]
def run_hive_cmd(hive_cmd):
cmd = "%s -e '%s'" % (hive_bin, hive_cmd)
print "run sehll command : %s" % (cmd)
res = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,close_fds=True);
out=res.stdout.readlines();
print "output of shell command is "
print out
for k, v in enumerate(out):
out[k] = v.rstrip("\n")
return out
def get_fields(rows):
ans = []
for k, v in enumerate(rows):
f = v.split(" ")[0].strip()
ans.append(f)
return ans;
def get_group(db, table, field):
hive_cmd = "USE %s ; SELECT %s, count(1) FROM %s GROUP BY %s" % (db, field, table, field)
ans = run_hive_cmd(hive_cmd)
print "[START] output group of field %s (database is %s, table is %s)" % (field, db, table)
print "%s %s" % ('value', 'num')
for k, v in enumerate(ans):
tmp = v.split(" ")
value = tmp[0]
num = tmp[1]
print "%s %s" % (value, num)
print "[END] output group of field %s (database is %s, table is %s)" % (field, db, table)
cmd = "USE %s ; DESC %s" % (db, table)
fields = run_hive_cmd(cmd)
fields = get_fields(fields)
for k, v in enumerate(fields):
get_group(db, table, v)
分享到:
相关推荐
2. 以上简单创建了一个DB库,但是这条HQL可以更进一步的优化,我们可以加上if not exists 3. 查看数据仓库DB的信息及路径 4. 删除名为DB
datax hdfsreader修改,支持 hive Parquet格式,支持读取hive Long,Int类型
hive不直接支持分组取TopN的操作,需要自定义udf函数打成jar包添加到hive运行环境中
hive表修改分区数据
spark2.3 读取hive问题处理读取不到hive中的数据库?spark通过hive读取hbase外连表,报Class Not Found等异常?手动指定s
内容概要:Pyspark读取Hive数据按照表格方式邮件发送多个邮箱 适合人群:大数据研发、后端、运维 能学到什么: 1、如何通过Spark读取Hive发送邮件进行数据监控 2、将数据形成表格方式发送多个指定邮箱 阅读建议: 1...
hive 创建表语法使用等
hive表新增字段或者修改字段,原理和具体操作
sql行列转换、一个字段包含另一个字段.sql
hive2.1.1orc格式读取报数组越界错误,替换jar包。hive-exec-2.1.1-cdh6.3.2.jar、hive-orc-2.1.1-cdh6.3.2.jar。分发各个服务器即可。
4.2.2 Hive 修改字段名/字段类型/字段位置/字段注释: 4 4.2.3 Hive 重命名表名: 4 4.3Hive 删除表: 4 5 Hive 分区 4 5.1 Hive 添加分区 4 5.2 Hive 删除分区 5 6 SHOW语句 5 7 DESCRIBE语句 5 8 加载数据 5 9表...
用于多行合并和分组limit输出的udf工具包,已编译配置好,直接调用即可
// 获取id字段的血缘 LineageNode idNode = Delegate.getDelegate().getLineage(hql, "id"); // 获取name字段的血缘 LineageNode nameNode = Delegate.getDelegate().getLineage(hql, "name"); // 打印血缘 ...
当我们将一个文件映射为Hive中一张表时,只需在建表的时告诉Hive,数据中的列名、列分隔符、行分隔符等,Hive就可以自动解析数据。支持多种压缩格式:bzip2、gzip、lzo、snappy等。通常采用parquet+snappy格式存储。...
包含读取hive,MySQL,文件三种方式的数据交互的udf函数,适用初高及数据研发人员在开发udf函数是作为参考,包括文件写入及读取方式,MySQL,hive等数据库连接可以直接将获取数据转为对象,便于后期开发达到复用目的...
pyflink将mysql数据直接插入hive,由此可以延伸出pyflink实现hive关联mysql
C# 操作Hadoop 生态里 Hive 数据仓库 需要的odbc驱动 64位
hive sql 拆解字段.docx
02.hive查询语法--分组聚合--groupby查询--where过滤和having过滤的区别.mp4
一、问题发现与分析 ...经过对比:sqoop在转换MySQL的datatime字段类型为hive的string时会出现问题:默认先转为对应时间戳,再转换为北京市区时间,就会使时间多8小时。 解决办法有两个: 1、在sql里将时间字段转换为