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 相关文章推荐
200行自定义python异步非阻塞Web框架
Mar 15 Python
Python元组操作实例分析【创建、赋值、更新、删除等】
Jul 24 Python
Python之csv文件从MySQL数据库导入导出的方法
Jun 21 Python
学生信息管理系统Python面向对象版
Jan 30 Python
Python程序打包工具py2exe和PyInstaller详解
Jun 28 Python
Flask框架学习笔记之表单基础介绍与表单提交方式
Aug 12 Python
在Tensorflow中实现梯度下降法更新参数值
Jan 23 Python
django实现更改数据库某个字段以及字段段内数据
Mar 31 Python
Python HTTP下载文件并显示下载进度条功能的实现
Apr 02 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
Jun 24 Python
Python预测2020高考分数和录取情况
Jul 08 Python
详解pandas映射与数据转换
Jan 22 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/03/13 PHP
使用php完成常见的文件上传功能(推荐)
2017/01/13 PHP
php中的异常和错误浅析
2017/05/03 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
PHP封装cURL工具类与应用示例
2019/07/01 PHP
javascript encodeURI和encodeURIComponent的比较
2010/04/03 Javascript
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
JavaScript实现将xml转换成html table表格的方法
2015/04/17 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
2015/10/04 Javascript
jQuery extend()详解及简单实例
2017/05/06 jQuery
Nodejs之http的表单提交
2017/07/07 NodeJs
微信小程序实现图片上传、删除和预览功能的方法
2017/12/18 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
利用CDN加速react webpack打包后的文件详解
2018/02/22 Javascript
微信小程序实现图片上传功能
2018/05/28 Javascript
jquery实现联想词搜索框和搜索结果分页的示例
2018/10/10 jQuery
在vue中使用G2图表的示例代码
2019/03/19 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
[02:17]《辉夜杯》TRG战队巡礼
2015/10/26 DOTA
[02:07]2017国际邀请赛中国区预选赛直邀战队前瞻
2017/06/23 DOTA
ssh批量登录并执行命令的python实现代码
2012/05/25 Python
Python的Flask框架中实现分页功能的教程
2015/04/20 Python
举例详解Python中yield生成器的用法
2015/08/05 Python
Python如何读取MySQL数据库表数据
2017/03/11 Python
python调用matlab的m自定义函数方法
2019/02/18 Python
美国最大的无人机经销商:DroneNerds
2018/03/20 全球购物
毕业生找工作推荐信
2013/11/21 职场文书
五年级数学教学反思
2014/02/11 职场文书
服务质量承诺书
2014/03/27 职场文书
员工试用期考核自我鉴定
2014/04/13 职场文书
大学社团活动总结
2014/04/26 职场文书
大学新生军训自我鉴定
2014/09/18 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书
跳高加油稿
2015/07/21 职场文书
《正比例》教学反思
2016/02/23 职场文书
500字作文之难忘的同学
2019/12/20 职场文书