transform python環境快速配置方法
データ開発には常にudfを必要としていますが、最近はtranformの方が使いやすいと分かりましたが、クラスタpythonのバージョンが違っていたり、パッケージが不完全だったり、一部のマシンにpythonがインストールされていません。
だから私たちは環境の配置を迅速に行う必要があります。
macはインストールされたpythonを持参していますので、どうやってインストールするかは分かりません。公式サイトに行ってもいいです。次はhttps://www.python.org/downloads/source/です。
1、仮想環境ツールをインストールする:
実行:pip install virtual lenv、pipがないならgoogleを使って、自分でインストールします。
2、仮想環境を作成する:
新しいディレクトリを作成して、各種環境ファイルを中に入れます。
pythonバージョンに対して要求があれば、pythonバージョンを指定して作成することもできます。
仮想環境を有効にする:
例えば、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ファイル内のパスを変更:
python-envフォルダ内に入る(ディレクトリの階層が少し少ないので)仮想環境を包装します。
新しいshellファイル、例えばtest.sh、コードは以下の通りです。
7、hive引用transfrom:
hiveクライアントに入ると、上記のファイルをロードします。
以上は小编でご绍介したtransform 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-env
3、新しい仮想環境に自分の必要なカバンをインストールする:仮想環境を有効にする:
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/tmp7、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环境の早い配置方法です。皆さんに何かお聞きしたいことがあれば、メッセージをください。小编はすぐにご返事します。ここでも私たちのサイトを応援してくれてありがとうございます。