当前位置: 首页 > 编程笔记 >

transform python环境快速配置方法

陈瀚玥
2023-03-14
本文向大家介绍transform python环境快速配置方法,包括了transform python环境快速配置方法的使用技巧和注意事项,需要的朋友参考一下

经常在数据开发中需要搞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环境快速配置方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 该章节用于帮助用户快速配置 云联壹云 环境. 初次使用时,请按照本章节的步骤进行配置 云联壹云 平台来管理多云环境。 配置云账号 配置认证源 配置项目和用户 当完成上面的配置后,您可以在 云联壹云 平台管理多云资源,如查看监控信息、查看费用分析、在项目中创建资源等。更多功能介绍,请参考主要功能。 配置云账号 该章节用于帮助用户配置云账号,纳管云平台。 配置认证源 该章节用于帮助用户配置认证源并支持

  • 1.下载并安装Jdk 传送门,下载完成以后,按照提示一步一步执行即可。 2.配置Jdk 传送门。 3.下载AndroidStudio 传送门,我一般选择推荐安装的那个。不要想着去谷歌官网下载,不要问为什么。 4.安装配置AndroidStudio。传送门,后续会重新传送一个门。 5.下载并安装nodejs 传送门。 6.安装weex命令行工具。打开命令行,执行命令:npm install -g w

  • 环境搭建 假设已经按照 Weex官方 的教程学会了如何搭建本地开发环境进行 Weex 开发。 第一步:安装 bui-weex-toolkit bui-weex-toolkit 是配合 BUI-Weex 框架使用的命令行工具(CLI),能够快速创建框架脚手架工程、查看发布版本等。该工具需要安装在全局: npm install -g bui-weex-toolkit 正常安装后,打开命令行,输入bui

  • 环境依赖 hiredis(redis异步库) redis mysql php >5.6 或者 php > 7.0 swoole >=1.9.17(建议升级到最新版本) (在编译swoole时加入—enable-async-redis,开启异步redis客户端, —enable-openssl开启openssl支持,—with-openssl-dir指定你的openssl目录) 注:openssl是

  • 本文向大家介绍CentOS平台快速搭建LAMP环境的方法,包括了CentOS平台快速搭建LAMP环境的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了CentOS平台快速搭建LAMP环境的方法。分享给大家供大家参考,具体如下: LAMP --  Linux Apache MySQL PHP 在CentOS安装的顺序,我一般是Apache -> MySQL -> PHP 第一步、安装并配

  • 本文向大家介绍汇编环境搭建之如何快速安装和配置DOSBox,包括了汇编环境搭建之如何快速安装和配置DOSBox的使用技巧和注意事项,需要的朋友参考一下 掉头发掉的那些事: 本来之前是安装好了从老师那里复制过来DOSBox的,但是在挂载和编辑和调试哪里却被网上的各种方法搞得晕头转向,怎么弄也弄不好!咦?为什么我打不开edit??咦?为什么我生成不了.obj文件??咦???我想这也是很多汇编初学者同样