transform python环境快速配置方法


Posted in Python onSeptember 27, 2018

经常在数据开发中需要搞udf,最近发现transform更加方便易用,但是经常会涉及到集群python版本不一、包不全或者部分机器上没有安装python。

所以咱们需要快速的进行环境配置。

因为mac自带安装好的python,所以就不讲怎么安装了。可以去官网下个: https://www.python.org/downloads/source/

1、安装虚拟环境工具:

执行:pip install virtualenv,如果没有pip的话可以google一把,自行安装

2、创建虚拟环境:

新建一个目录,各种环境文件放里面:

midir envs

cd 到该目录下,创建python虚拟环境:

virtualenv python-env

创建完了可以看到会新增一个python-env文件夹。

如果你对python版本有要求,也可以指定python版本进行创建:

virtualenv -p /usr/bin/python2.7 python-env

3、在新的虚拟环境安装自己需要的包:

激活虚拟环境:

source python-env/bin/activate

这时候在这个环境下安装的py包都是在该环境下的,可以用pip install进行安装

例如:pip install pyhs2

(安装pyhs2的时候出现异常 Cannot uninstall 'six'. It is a distutils installed project,直接跳过 sudo pip install pyhs2 --ignore-installed six)

退出虚拟环境:

deactivate

4、修改文件配置:

进入虚拟环境的bin文件夹

修改activate文件内的路径:

DIR_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
VIRTUAL_ENV="$( readlink -f "${DIR_PATH}/../" )"

5、打包文件:

进入 python-env文件夹内(因为目录层级少一点), 打包虚拟环境:

tar -zcf python-env.tgz *

检查一下打包文件是否把对应包打进去了,查看打包是否把pyhs2打进去了:

tar -tvf python-env.tgz |grep "pyhs2"

6、如何引用python环境

新建shell文件例如test.sh,代码如下:

source ./python-env.tgz/bin/activate
python test_transform.py

写好 test_ transform 的代码,例如简单的计算(不要纠结案例的业务逻辑):

# -*- coding: utf-8 -*-
import sys

def main():
  data_list = sys.stdin.readlines()
  # 获取id循环次数,除数-1,结果加+1
  n = (data_list.__len__() - 1)/20 + 1
  j = 1
  while j <= n:
    id_lists = data_list[(j - 1) * 20:j * 20]
    ids = []
    for id in id_lists:
      ids.append(id.strip())
    j += 1
    for id in ids:
      result=[id,str(id*100),str(id+10)]
    print '\t'.join(str(e) for e in result)

if __name__ == "__main__":
  main()

把python-env.tgz、 test.sh、test_ transform.py 上传至集群的hdfs上,例如在:hdfs:///user/tmp

7、hive引用transfrom:

进入hive客户端后,加载上述文件:

ADD ARCHIVE hdfs:///user/tmp/python-env.tgz;
ADD FILE hdfs:///user/tmp/test.sh;
ADD FILE hdfs:///user/tmp/test_transform.py;

执行hsql:

select
transform(id) USING 'test.sh' as (id,price1,price2)
from
(
select 100 as id from dual
)

以上整个流程搞通,那么就算集群上没有装python,你都可以自己创建transform进行快速开发了。

以上所述是小编给大家介绍的transform python环境快速配置方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
python 动态获取当前运行的类名和函数名的方法
Apr 15 Python
Python实现的Excel文件读写类
Jul 30 Python
python使用super()出现错误解决办法
Aug 14 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
May 25 Python
Python 实现两个服务器之间文件的上传方法
Feb 13 Python
Django给admin添加Action的步骤详解
May 01 Python
Python玩转PDF的各种骚操作
May 06 Python
通过cmd进入python的实例操作
Jun 26 Python
python GUI模拟实现计算器
Jun 22 Python
Python基于locals返回作用域字典
Oct 17 Python
详解tensorflow之过拟合问题实战
Nov 01 Python
使用豆瓣源来安装python中的第三方库方法
Jan 26 Python
python如何求解两数的最大公约数
Sep 27 #Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
Sep 27 #Python
python斐波那契数列的计算方法
Sep 27 #Python
python实现汉诺塔算法
Mar 01 #Python
Python3中bytes类型转换为str类型
Sep 27 #Python
python求解数组中两个字符串的最小距离
Sep 27 #Python
Python开发的十个小贴士和技巧及长常犯错误
Sep 27 #Python
You might like
php格式化金额函数分享
2015/02/02 PHP
详谈PHP编码转换问题
2015/07/28 PHP
深入浅析php中sprintf与printf函数的用法及区别
2016/01/08 PHP
php+js实现百度地图多点标注的方法
2016/11/30 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
2017/03/04 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
PHP 枚举类型的管理与设计知识点总结
2020/02/13 PHP
JavaScript版DateAdd和DateDiff函数代码
2012/03/01 Javascript
jQuery异步验证用户名是否存在示例代码
2014/05/21 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
jQuery实现contains方法不区分大小写的方法
2015/02/13 Javascript
jquery计算鼠标和指定元素之间距离的方法
2015/06/26 Javascript
JS代码实现table数据分页效果
2016/05/26 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
2016/10/03 Javascript
js基础之DOM中元素对象的属性方法详解
2016/10/28 Javascript
Vue.js 插件开发详解
2017/03/29 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
2017/12/16 Javascript
微信小程序页面上下滚动效果
2020/11/18 Javascript
利用 Monkey 命令操作屏幕快速滑动
2016/12/07 Python
手把手教你python实现SVM算法
2017/12/27 Python
python读取和保存视频文件
2018/04/16 Python
python实现可变变量名方法详解
2019/07/01 Python
CSS3 @keyframes简单动画实现
2018/02/24 HTML / CSS
Html5 页面适配iPhoneX(就是那么简单)
2019/09/05 HTML / CSS
CHARLES & KEITH英国官网:新加坡时尚品牌
2018/07/04 全球购物
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
海蓝之谜英国官网:La Mer英国
2020/01/15 全球购物
Java基础面试题
2012/11/02 面试题
公司新员工的演讲稿注意事项
2014/01/01 职场文书
水果连锁超市创业计划书
2014/01/24 职场文书
创业培训计划书
2014/05/03 职场文书
工作检讨书怎么写
2014/10/10 职场文书
2014年仓库管理工作总结
2014/12/17 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书
优秀毕业生主要事迹材料
2015/11/04 职场文书
如何理解PHP核心特性命名空间
2021/05/28 PHP