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 04 Python
Python基础教程之tcp socket编程详解及简单实例
Feb 23 Python
Django自定义插件实现网站登录验证码功能
Apr 19 Python
Python实现霍夫圆和椭圆变换代码详解
Jan 12 Python
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
Mar 04 Python
Python中enumerate()函数编写更Pythonic的循环
Mar 06 Python
Python实现基于SVM的分类器的方法
Jul 19 Python
通过实例了解python__slots__使用方法
Sep 14 Python
python 实现性别识别
Nov 21 Python
Python绘制词云图之可视化神器pyecharts的方法
Feb 23 Python
Python中常见的反爬机制及其破解方法总结
Jun 10 Python
Appium中scroll和drag_and_drop根据元素位置滑动
Feb 15 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中进行身份认证
2006/10/09 PHP
PHP 作用域解析运算符(::)
2010/07/27 PHP
PHP函数microtime()用法与说明
2013/12/04 PHP
去除php注释和去除空格函数分享
2014/03/13 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
2016/02/14 PHP
JavaScript代码复用模式实例分析
2012/12/02 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
JS随机打乱数组的方法小结
2016/06/22 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
js select实现省市区联动选择
2020/04/17 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
2016/12/01 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
2017/05/27 Javascript
vue集成chart.js的实现方法
2019/08/20 Javascript
js实现直播点击飘心效果
2020/08/19 Javascript
vue实现图片裁剪后上传
2020/12/16 Vue.js
python动态加载变量示例分享
2014/02/17 Python
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
Scrapy使用的基本流程与实例讲解
2018/10/21 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
Djang的model创建的字段和参数详解
2019/07/27 Python
python模拟预测一下新型冠状病毒肺炎的数据
2020/02/01 Python
利用python实现平稳时间序列的建模方式
2020/06/03 Python
python输出结果刷新及进度条的实现操作
2020/07/13 Python
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
美国折衷生活方式品牌:Robert Graham
2018/07/13 全球购物
Farah官方网站:男士服装及配件
2019/11/01 全球购物
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
2014年作风建设剖析材料
2014/10/23 职场文书
解除劳动关系协议书2篇
2014/11/28 职场文书
经验交流材料格式
2014/12/30 职场文书
运动会通讯稿300字
2015/07/20 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
文明礼仪主题班会
2015/08/13 职场文书
SpringBoot集成Redis的思路详解
2021/10/16 Redis
宫崎骏十大动画电影,宫崎骏好看的动画电影排名
2022/03/22 日漫