transform python環境快速配置方法


データ開発には常にudfを必要としていますが、最近はtranformの方が使いやすいと分かりましたが、クラスタpythonのバージョンが違っていたり、パッケージが不完全だったり、一部のマシンにpythonがインストールされていません。
だから私たちは環境の配置を迅速に行う必要があります。
macはインストールされたpythonを持参していますので、どうやってインストールするかは分かりません。公式サイトに行ってもいいです。次はhttps://www.python.org/downloads/source/です。
1、仮想環境ツールをインストールする:
実行:pip install virtual lenv、pipがないならgoogleを使って、自分でインストールします。
2、仮想環境を作成する:
新しいディレクトリを作成して、各種環境ファイルを中に入れます。midir envs cdはこのディレクトリの下でpython仮想環境を作成します。virtualenv python-env作成したら、python-envフォルダが追加されます。
pythonバージョンに対して要求があれば、pythonバージョンを指定して作成することもできます。virtualenv -p /usr/bin/python2.7 python-env3、新しい仮想環境に自分の必要なカバンをインストールする:
仮想環境を有効にする:source python-env/bin/activateこの場合、この環境でインストールされているpyバッグはこの環境にあります。pip installでインストールできます。
例えば、pip install pyhs 2
(pyhs 2をインストールする時に異常が発生します。Canot uninstall'six'.It is a distutils installed project、直接sudo pip install pyhs 2--ignore-innstalled 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 * 包装ファイルが対応カバンを打ち込んでいるか確認して、パッケージがpyhs 2を打ち込んでいるか確認します。

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 python环境の早い配置方法です。皆さんに何かお聞きしたいことがあれば、メッセージをください。小编はすぐにご返事します。ここでも私たちのサイトを応援してくれてありがとうございます。