luigi操作hive表
关于luigi框架下查询hive表的操作
class JoinQuery(HiveQueryTask):
date=luigi.DateParameter()
def hiveconfs(self):
jcs = {}
jcs['mapred.job.name'] = "xxx_xxx_hive_daily_{}_username".format(format_date(self.date))
jcs['mapred.job.queue.name'] = 'root.xxx.xxx'
return jcs def requires(self):
return LogHiveFiles(date=self.date)
def output(self):
return luigi.hdfs.HdfsTarget(hdfs_targets.DailyExprImgHdfsFiles(date=self.date).path,
format=luigi.hdfs.PlainDir)
def query(self):
query="""
INSERT OVERWRITE DIRECTORY '{ot}'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
SELECT * FROM {tb} WHERE date='{dt}' LIMIT 1
""".format(ot=self.output().path,tb=self.input().table,dt=self.input().partition['date'])
return query class recCountStats(luigi.Task):
now = datetime.now()
date = luigi.DateParameter(default=datetime(now.year, now.month, now.day) - timedelta(days=3)) def requires(self):
return JoinQuery(self.date)
if __name__ == '__main__':
luigi.run(main_task_cls=recCountStats)
直接上的代码,luigi框架不多说了,可以看之前的luigi的文章。HiveQueryTask类是封装好的专门用于hive sql的类,就是把hive的query写在程序中,他帮你查。
1.JoinQuery类是直接继承自HiveQueryTask类的,处理Luigi本身就有的requires和output以外,区别于spark任务,不用写main()或run()方法,写query()方法就好。
2.区别于luigi下执行spark任务,执行hive和执行mapreduce比较像,需要定义hiveconf方法,就是程序的配置。里面需要定义程序的名称和跑该程序的队列,切记,写了名称和队列 公司服务器才会接受运行该程序,要不然报错的。
3.关于查询的query语句,Luigi不捕捉查询任务的输出,要用INSERT DIRECTORY系列语句将查询结果持久化,并作为output输出。看代码!INSERT OVERWRITE DIRECTORY +table名 可以把结果写入hdfs表 ,用LOCAL DIRECTORY的话可以写在本地。
4.关于requires函数中的 返回的类,可参考下面这样定义,和hdfs的有一些区别,hdfs的只要一个地址就行了。hive的:
class LogHiveFiles(luigi.ExternalTask):
date = luigi.DateParameter()
def output(self):
return luigi.hive.HivePartitionTarget(table='xxxs_xxx_log_xxx_daily',partition={'date': format_date(self.date)})
用的是HivePartitionTarget类。
luigi操作hive表的更多相关文章
- spark+hcatalog操作hive表及其数据
package iie.hadoop.hcatalog.spark; import iie.udps.common.hcatalog.SerHCatInputFormat; import iie.ud ...
- spark使用Hive表操作
spark Hive表操作 之前很长一段时间是通过hiveServer操作Hive表的,一旦hiveServer宕掉就无法进行操作. 比如说一个修改表分区的操作 一.使用HiveServer的方式 v ...
- SparkSQL On Yarn with Hive,操作和访问Hive表
转载自:http://lxw1234.com/archives/2015/08/466.htm 本文将介绍以yarn-cluster模式运行SparkSQL应用程序,访问和操作Hive中的表,这个和在 ...
- 基于CDH5.x 下面使用eclipse 操作hive 。使用java通过jdbc连接HIVESERVICE 创建表
基于CDH5.x 下面使用eclipse 操作hive .使用java通过jdbc连接HIVESERVICE 创建表 import java.sql.Connection; import java.s ...
- Hive基础之Hive表常用操作
本案例使用的数据均来源于Oracle自带的emp和dept表 创建表 语法: CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name ...
- hive表信息查询:查看表结构、表操作等--转
原文地址:http://www.aboutyun.com/forum.PHP?mod=viewthread&tid=8590&highlight=Hive 问题导读:1.如何查看hiv ...
- hive表信息查询:查看表结构、表操作等
转自网友的,主要是自己备份下 有时候不记得! 问题导读:1.如何查看hive表结构?2.如何查看表结构信息?3.如何查看分区信息?4.哪个命令可以模糊搜索表 1.hive模糊搜索表 show tabl ...
- hive表分区相关操作
Hive 表分区 Hive表的分区就是一个目录,分区字段不和表的字段重复 创建分区表: create table tb_partition(id string, name string) PARTIT ...
- Hive 表操作(HIVE的数据存储、数据库、表、分区、分桶)
1.Hive的数据存储 Hive的数据存储基于Hadoop HDFS Hive没有专门的数据存储格式 存储结构主要包括:数据库.文件.表.试图 Hive默认可以直接加载文本文件(TextFile),还 ...
随机推荐
- HDU 6215 Brute Force Sorting(模拟链表 思维)
Brute Force Sorting Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Othe ...
- oracle date 看时间
SELECT to_char(DATE_TIME,'yyyy-MM-dd HH24:mi:ss') FROM AUDIT_EVENT;
- 应用程序首选项(application preference)及数据存储
应用程序首选项(application preference)用来存储用户设置,考虑以下案例: a. 假设有一款MP3播放器程序,当用户调节了音量,当下次运行该程序时,可能希望保持上一次调节的音量值. ...
- django使用mongodb建表
1.安装mongodb的py模块包 pip install mongoengine 同时安装了mongoengine.pymongo 2.在项目配置文件settings.py中配置 from mong ...
- 51nod1218 最长递增子序列 V2
看见标签推荐顺便就做了吧 记$f[i], g[i]$为$i$的含$i$的前缀最长递增子序列和后缀递增子序列 只要满足$f[i] + g[i] == LIS + 1$,那么$i$就是可能的 对于$i$而 ...
- NOIP2018提高组题解
D1T1:铺设道路 回忆NOIP2013D2T1 积木大赛,发现这两题唯一的区别就是一个是造山一个是填坑,而把填坑的操作反序就是造山,所以可以直接使用那道题的方法. 具体方法是,从左到右每次考虑新的一 ...
- [SimpleOJ236]暴风雨
题目大意: 给你一棵n个点的树,以及m+q条信息. m条描述点a到b有边直接相连. q条描述点a和点b的LCA为c. 问有多少符合条件的以1为根的树. 思路: 状压DP. e[i]记录需要与点i直接相 ...
- Java编程思想学习(五)----第5章:初始化与清理
随着计算机革命的发展,“不安全”的编程方式已逐渐成为编程代价高昂的主因之一. C++引入了构造嚣(constructor)的概念,这是一个在创建对象时被自动调用的特殊方法.Java中也采用了构造器,并 ...
- noip200806火柴棒等式
试题描述: 给你n根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的A.B.C是用火柴棍拼出的整数(若该数非零,则最高位不能是0).用火柴棍拼数字0-9的拼法如图所示: 注意: 1)加号与等 ...
- SCOJ 4484 The Graver Robbers' Chronicles 后缀自动机
4484: The Graver Robbers' Chronicles 题目连接: http://acm.scu.edu.cn/soj/problem.action?id=4484 Descript ...