python执行hivesql_python 调用shell hive sql

def generate_csv_source(data_file):

#判断文件是否存在

if not os.path.exists(data_file):

# 拉取hive表数据

cmd_sql = 'hive -e "set hive.cli.print.header=true; \

select * from dw.full_d_usr_channel_sum_v3 where ds<>\'\' \

and type in (\'super\',\'9k9\',\'taobao\',\'sc\',\'zy\',\'ad\',\'licai\') \

" >%s' % (data_file)

print cmd_sql

subprocess.call(cmd_sql, shell=True)

# 替换其中的字段分隔符/t为,

cmd_sed = 'sed -i "s/\t/,/g" %s' % (data_file)

subprocess.call(cmd_sed, shell=True)

print "文件已生成:"+data_file

else:

print "最新文件已存在:"+data_file

-- 写人hive 表

def insert_to_table(data_cur, c_path,tab_name, ds,freq_type,c_type):

# data_cur.to_csv('./user_value_auto_compute_result.csv', index=False, header=None, encoding="utf8")

path_result = '%s/%s_%s_%s.csv' % (c_path,tab_name,freq_type,c_type)

print '生成的结果csv文件:',path_result

data_cur.to_csv(path_result, index=False,header=None, float_format = '%.4f', encoding="utf8")

# cmd_hive = '''hive -e "load data local inpath \'''' + c_path + '''/'''+tab_name+'''.csv\' OVERWRITE into table '''+tab_name+''' partition(c_type='%s',freq_type='%s',ds='%s')"''' % (c_type,freq_type,ds)

cmd_hive = '''hive -e "load data local inpath \'''' + path_result+'''\' OVERWRITE into table '''+tab_name+''' partition(c_type='%s',freq_type='%s',ds='%s')"''' % (c_type,freq_type,ds)

# 导入hive库

print cmd_hive

subprocess.call(cmd_hive, shell=True)

print '生成文件:%s.csv' % (tab_name)

python 调用 shell 命令方法

python调用shell命令方法 1.os.system(cmd) 缺点:不能获取返回值 2.os.popen(cmd) 要得到命令的输出内容,只需再调用下read()或readlines()等   ...

python调用shell, shell 引用python

python 调用 shell get_line_num="wc -l as_uniq_info | awk '{print $1}'" ###get the lines of & ...

python 调用shell命令三种方法

#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器: #!/usr/bin/env python这种用法是为了防止操作系统用户没有将pyth ...

python 调用 shell 命令

记录 python 调用 shell 命令的方法 加载 os 模块, 使用 os 类 import os; os.system("ls /");

Python 调用 Shell脚本的方法

Python 调用 Shell脚本的方法 1.os模块的popen方法 通过 os.popen() 返回的是 file read 的对象,对其进行读取 read() 的操作可以看到执行的输出. &gt ...

用Python调用Shell命令

Python经常被称作“胶水语言”,因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库,也当然可以用Python调用Shell命令. 用Python调用Shell命令有如下几种方式: 第一种 ...

python 调用shell命令的方法

在python程序中调用shell命令,是件很酷且常用的事情…… 1. os.system(command) 此函数会启动子进程,在子进程中执行command,并返回command命令执行完毕后的退出 ...

python调用shell脚本时需要切换目录

最近遇到了一个问题,就是python代码调用shell脚本时,发现输入输出的文件,总是和自己预想的有偏差,但是单独在linux下执行命令的时候,却没有错误.后来发现是相对路径的问题,因为执行pytho ...

Python调用shell

今天学习了Python通过子进程调用shell,感觉教程上讲的过于繁复,有一些根本没用的功能,比如重定向输入输出,这个shell本身就支持,没有必要用Python的api.决定自己总结下. 其实总的来 ...

随机推荐

wParam和lParam两个参数到底是什么意思?

在Windows的消息函数中,有两个非常熟悉的参数:wParam,lParam. 这两个参数的字面意义对于现在的程序来说已经不重要了,因为它是16位系统的产物,为了保持程序的可移植性,就将它保存了下来 ...

优雅地使用Windows

优雅地使用Windows 理财推荐:收益还行,安全性比余额宝高,只能自己的卡转进转出所以被盗也不怕,重要的是快速取现实时到账呢 1 现金宝 :点击进入现金宝 或者百度现金宝 2 百度理财 8.baid ...

使用stty修改终端设置 stty 用法!

在linux/unix平台上的 sqlplus中,如果输错了字符,要想删除,习惯性的按下backspace键后,发现非但没有删除想要删掉的字符,还多出了两个字符^H.当然,我们 可以同时按下ctrl+ ...

SQLite使用方法 SQLiteOpenHelper操作(转)

SQLiteOpenHelper主要用于 创建数据库 SQLiteDatabase 主要用于 执行sql语句 程序内使用SQLite数据库是通过SQLiteOpenHelper进行操作 1.      ...

jq实现 禁止对密码框中的内容进行复制、剪切和粘贴操作

$(function () { $("input:password").on("copy cut paste", function (e) { return f ...

Cocopods -第三方库的管理

前言 什么是CocoaPods? CocoaPods是OS X和iOS下的一个第三类库管理工具,通过CocoaPods工具我们可以为项目添加被称为“Pods”的依赖库(这些类库必须是CocoaPods ...

&lbrack;python&rsqb;文本处理1&period;2

1.0初步完成了文本截取需要信息的处理 1.1 修复了格式所造成的遗漏字符 1.2 去除了遗漏字符中的多余字符 bug-文本test14 有遗漏字符 bug-修复的遗漏字符中含有\n 未被识别为换行符

番外篇--Moddule Zero安装

Moddule Zero 安装 1.2.1 从模板创建 使用ABP和module-zero开始一个新项目最简单的方式是使用启动模板.详细了解请参考启动模板文档. 1.2.2 手动安装 如果你有一个预先 ...

整理&plus;学习《骆昊-Java面试题全集(上)》

★可以关注微信公众号,了解更多技术和行业信息 2013年年底的时候,我看到了网上流传的一个叫做的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不 ...

USB&lowbar;4大描述符

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/aaa6695798/archive/2009/11/06/4776202.aspx 在USB描述符中,从上到下分为四个 ...

已标记关键词 清除标记
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页