如何在python中写hive脚本
这篇文章主要介绍了如何在python中写hive脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
1、直接执行.sql脚本
import numpy as np import pandas as pd import lightgbm as lgb from pandas import DataFrame from sklearn.model_selection import train_test_split from io import StringIO import gc import sys import os hive_cmd = "hive -f ./sql/sql.sql" output = os.popen(hive_cmd) data_cart_prop = pd.read_csv(StringIO(unicode(output.read(),'utf-8')), sep="\t",header=0)
2、Hive语句执行
假如有如下hive sql:
hive_cmd = 'hive -e "select count(*) from hbase.routermac_sort_10;"'
一般在python中按照如下方式执行该hive sql:
os.system(hive_cmd)
---------------------
hive_cmd1 = "hive -f ./user.sql" output1 = os.popen(hive_cmd1) test_user = pd.read_csv(StringIO(unicode(output1.read(),'utf-8')), sep="\t",header=0) hive_cmd2 = "hive -f ./action.sql" output2 = os.popen(hive_cmd2) test_action = pd.read_csv(StringIO(unicode(output2.read(),'utf-8')), sep="\t",header=0) hive_cmd3 = "hive -f ./click.sql" output3 = os.popen(hive_cmd3) test_click = pd.read_csv(StringIO(unicode(output3.read(),'utf-8')), sep="\t",header=0)
为了显示表头,在脚本中加上一句:set hive.cli.print.header=true;
或者,使用如下语句:
hive_cmd = 'hive -e "set hive.cli.print.header=true;SELECT * FROM dev.temp_dev_jypt_decor_user_label_phase_one_view_feature WHERE(dt = "2018-09-17");"' output = os.popen(hive_cmd) data_cart_prop = pd.read_csv(StringIO(unicode(output.read(),'utf-8')), sep="\t",header=0)
3、tf 显存占用
import tensorflow as tf tf.enable_eager_execution() x = tf.get_variable('x', shape=[1], initializer=tf.constant_initializer(3.)) with tf.GradientTape() as tape: y = tf.square(x) y_grad = tape.gradient(y, x) print([y.numpy(), y_grad.numpy()])
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
hive-shell批量命令执行脚本的实现方法
如下所示: #!/usr/bin/bash HADOOP_HOME="/opt/module/cdh-5.3.6-ha/hadoop-2.5.0-cdh5.3.6" HIVE_HOME='/opt/module/cdh-5.3.6-ha/hive-0.13.1-cdh5.3.6' ####### execute hive ###### sql=$(cat <<!EOF use db_01; drop table dept_nopart; create table IF NO
-
python处理数据,存进hive表的方法
首先,公司的小组长给了我一个任务,把一个txt的文件中的部分内容,存进一个在hive中已有的表的相同结构的表中.所以我的流程主要有三个,首先,把数据处理成和hive中表相同结构的数据,然后仿照已有的hive中表的结构再创建一张新的数据表,最后把本地的txt文件上传到hive中新建的数据表中. 1:已有的数据表的结构和在hive表中的结构完全对不上,下面的图是原来hive中表的结构和小组长给我的txt中表的结构: 大家可以看出,我们原来的hive中表的字段一共有17个,而组长给我的表中的字段一共有
-
shell中循环调用hive sql 脚本的方法
脚本tt.sh的内容如下: #!/bin/bash params=$1 for param in $params do echo $param done 运行方式为:sh tt.sh "1 2 3 4 5" 输出为: 1 2 3 4 5 所以参考上面的命令,可以把hql的脚本写为如下方式,就可以循环执行sql: 功能:查找字符串 comments 中的param第一次出现的位置 ,返回的是位置数字 #!/bin/bash params=$1 for param in $params d
-
sql server编写archive通用模板脚本实现自动分批删除数据
博主做过比较多项目的archive脚本编写,对于这种删除数据的脚本开发,肯定是一开始的话用最简单的一个delete语句,然后由于部分表数据量比较大啊,索引比较多啊,会发现删除数据很慢而且影响系统的正常使用.然后就对delete语句进行按均匀数据量分批delete的改写,这样的话,原来的删除一个表用一个语句,就可能变成几十行,如果archive的表有十几个甚至几十个,那我们的脚本篇幅就非常大了,增加了开发和维护的成本,不利于经验比较少的新入职同事去开发archive脚本,也容易把注意力分散到所谓分
-
使用shell脚本执行hive、sqoop命令的方法
1.test.sh脚本内容如下: #!/bin/bash #CURR_DATE=`date +"%Y-%m-%d %H:%M:%S"`------>不能使用 v_sql="insert into origin_ennenergy_energytrade.test2 values('"$(date +"%Y-%m-%d %H:%M:%S")"','"Y"')" echo $v_sql #insert i
-
mysql 5.7.18 Archive压缩版安装教程
本文为大家分享了mysql 5.7.18 Archive压缩版安装的具体方法,供大家参考,具体内容如下 文章参考: 5.7.17 winx64安装配置图文教程 mysql 5.7 zip archive版本安装教程 官网 进入 进入 往下滑: 解压: 设置环境变量:好像没用到这个环境变量(可以尝试不设置) 1) 2) 新建my.ini 初始化 注意:初始化只能一次,第二次执行mysqld –initialize会报错 初始化后找到mysql的密码: 输入密码是,黏贴:f6yL!frt>!wn 修
-
php ZipArchive实现多文件打包下载实例
实例代码: public function downLoad($dataUrl,$saveName) { $datalist = [ ROOT_PATH.'/public/introduce/110.docx', ROOT_PATH.'/public/upfile/110.zip' ]; // print_r($datalist);die; $filename = ROOT_PATH.'\public\/'.$saveName.'.zip'; if(file_exists($filename))
-
mysql 5.7 zip archive版本安装教程
本文为大家分享了mysql 5.7 zip archive版本安装教程,供大家参考,具体内容如下 1. 从官网下载zip archive版本:官网地址 2. 解压缩至相应目录,并配置环境变量(将*\bin添加进path中): 3. (重要)在根目录新建my.ini文件,写入以下内容: [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] # 设置3306端口 port = 3306 # 设置mysql的安装目录 basedi
-
python导出hive数据表的schema实例代码
本文研究的主要问题是python语言导出hive数据表的schema,分享了实现代码,具体如下. 为了避免运营提出无穷无尽的查询需求,我们决定将有查询价值的数据从mysql导入hive中,让他们使用HUE这个开源工具进行查询.想必他们对表结构不甚了解,还需要为之提供一个表结构说明,于是编写了一个脚本,从hive数据库中将每张表的字段即类型查询出来,代码如下: #coding=utf-8 import pyhs2 from xlwt import * hiveconn = pyhs2.connec
-
如何在python中写hive脚本
这篇文章主要介绍了如何在python中写hive脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.直接执行.sql脚本 import numpy as np import pandas as pd import lightgbm as lgb from pandas import DataFrame from sklearn.model_selection import train_test_split from io import St
-
Python 中写注释的方法
在写 Python 代码的时候,一个很好的编码实践就是使得你的代码简洁,易懂.组织代码,设置变量,以及给函数有意义的名字,都是几个不错的方法. 另外一个提高代码可读性的方式就是使用注释.一个注释就是可以用来解释代码的一段人类可读的解释或者一个注解.例如,如果你写了一个复杂的正则表达式,你可以添加一个注释,描述代码做了什么. 在你的 Python 代码中添加注释,在将来你阅读你的代码时,可以节省很多的时间和努力.比如说,你想修改一段你在几个月前或者几年前写的脚本.很可能你不记得为什么你写了一些比较
-
如何在Python中创建二叉树
前言 本文的内容是数据结构中二叉树部分最基础的,之所以写一下主要是为了方便刷题的时候,能够在自己电脑上很快的使用这种小的demo进行复杂的练习. 二叉树节点定义 二叉树的节点定义如下: class TreeNode():#二叉树节点 def __init__(self,val,lchild=None,rchild=None): self.val=val #二叉树的节点值 self.lchild=lchild #左孩子 self.rchild=rchild #右孩子 递归构建二叉树 本文使用的前序
-
如何在Python中编写接口和请求外部接口
目录 一.引入requests库 二.Get请求 三.Post请求 1.以form表单提交的方式 2.以json字符串的格式来提交 3.文件上传 四.总结 一.引入requests库 Python是通过requests库来请求接口的,所以,首先需要通过pip安装requests库. pip install requests==2.21.0 #文件上传才会用 pip install requests-toolbelt==0.9.1 说明:本文编写的接口用到的是Flask框架关于Flask框架的使用
-
如何在Python中引用其他模块
目录 一.前言 二.导入和使用标准模块 三.第三方模块的下载与安装 一.前言 在Python中,除了可以自定义模块外,还可以引用其他模块,主要包括使用标准库和第三方模块.下面分别进行介绍. 二.导入和使用标准模块 在Python中,自带了很多实用的模块,称为标准模块(也可以称为标准库),对于标准模块,我们可以直接使用import语句导入到Python文件中使用.例如,导入标准模块random(用于生成随机数),可以使用下面代码: import random # 导入标准模块random 说明
-
如何在Python中对文件进行操作
目录 前言 1.open()函数 2.读文件 3.写文件 4.通过 with 来读写文件 前言 在Python中,我们可以通过一些内置函数来操作电脑上的文件,并对文件进行读写,这种读写操作是很常见的 I/O 操作,我们今天就来简单学习下. 1.open()函数 我们可以使用Python中内置的 open() 函数来打开文件,返回文件对象,并对文件进行处理. open() 函数的常见格式如下: open(file, mode='r') 第一个参数表示要打开文件的路径,第二个参数表示文件打开的模式,
-
如何在python中实现capl语言里的回调函数(推荐)
CAPL:回调函数 CAPL是一种程序语言,其中程序块的执行由事件控制. 这些程序块被称为事件程序.在事件程序中定义的程序代码在事件发生时执行.换句话说,事件程序就是事件函数,当事件函数关联的事件被触发时,会自动执行此事件函数函数体.事件函数也称为回调函数 事件函数的标志就是关键字on,比如: on key 表示当键盘按下小写字母a时触发此事件函数执行 on message 表示当接收到消息时触发此事件函数执行 on start 表示当canoe软件运行时触发此事件函数执行 on sysvar
-
如何在python中实现随机选择
这篇文章主要介绍了如何在python中实现随机选择,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 想从一个序列中随机抽取若干元素,或者想生成几个随机数. random 模块有大量的函数用来产生随机数和随机选择元素.比如,要想从一个序列中随机的抽取一个元素,可以使用random.choice() : >>> import random >>> values = [1, 2, 3, 4, 5, 6] >>>
-
如何在python中判断变量的类型
python的数据类型有:数字(int).浮点(float).字符串(str),列表(list).元组(tuple).字典(dict).集合(set) 一般通过以下方法进行判断: 1.isinstance(参数1,参数2) 描述:该函数用来判断一个变量(参数1)是否是已知的变量类型(参数2) 类似于type() 参数1:变量 参数2:可以是直接或间接类名.基本类型或者由它们组成的元组. 返回值: 如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False 例子:
-
如何在python中实现线性回归
线性回归是基本的统计和机器学习技术之一.经济,计算机科学,社会科学等等学科中,无论是统计分析,或者是机器学习,还是科学计算,都有很大的机会需要用到线性模型.建议先学习它,然后再尝试更复杂的方法. 本文主要介绍如何逐步在Python中实现线性回归.而至于线性回归的数学推导.线性回归具体怎样工作,参数选择如何改进回归模型将在以后说明. 回归 回归分析是统计和机器学习中最重要的领域之一.有许多可用的回归方法.线性回归就是其中之一.而线性回归可能是最重要且使用最广泛的回归技术之一.这是最简单的回归方法之
随机推荐
- VS2015自带LocalDB数据库用法详解
- 关于JavaScript对象的动态选择及遍历对象
- 解析arp病毒背后利用的Javascript技术附解密方法
- PHP和XSS跨站攻击的防范
- FLASH 广告之外的链接
- php中try catch捕获异常实例详解
- MySQL使用xtrabackup进行备份还原操作
- 一个php+js实时显示时间问题
- jQuery回车实现登录简单实现
- 兼容性非常好的js右下角与漂浮广告代码
- 一段实时更新的时间代码
- PHP 巧用数组降低程序的时间复杂度
- 描述C#多线程中lock关键字的使用分析
- Python中还原JavaScript的escape函数编码后字符串的方法
- 无法将函数定义与现有的声明匹配 问题的解决办法 分享
- 当用户退出点击浏览器后退仍可回到原来页面的解决方案
- 动态网站web开发 PHP、ASP还是ASP.NET
- Android 仿苹果底部弹出Dialog
- 使用Vue完成一个简单的todolist的方法
- 使用Angular CLI快速创建Angular项目的一些基本概念和写法小结