集群环境下的机器学习建模pipeline

本文介绍了在企业级数据中心环境中,如何利用HDFS存储数据,通过Hive进行管理和查询,然后构建一个从Hive获取数据、模型预测、结果存储到Hive的机器学习流水线流程,涉及Python操作Hive和文件系统的关键步骤。
摘要由CSDN通过智能技术生成

一般大公司的数据中心都是集群环境,数据放在hdfs上,通过数仓进行管理,访问数仓的工具一般是hive。所以在这种环境下搭建机器学习流水线,可以分为以下几步:
1、从hive中获得模型输入
2、模型预测
3、将预测结果写入本地文件系统
4、从本地文件系统将数据写入hive表供下游调用

import os
import pandas as pd
import subprocess
os.chdir('your_path')

#read data from hive
cmd=shell_command
ds=os.popen(cmd).readlines()

#hive data to df
dtype={'uid':str,'attr':str}
df=pd.DataFrame([s.strip().replace('\n','').split('\t') for s in ds, columns=['uid','attr'])

#model process
#......

#write model result to local file system
df.to_csv('file_name',
            header=False,index=False)
            
#write local file back to hdfs             
cmd='your_shell_command'
#The underlying process creation and management in this module is handled by the Popen class.
p=subprocess.Popen(cmd,shell=True,
                   stdout=subprocess.PIPE,stdin=subprocess.PIPE,stderr=subprocess.PIPE)
status=p.wait() # If large data is in stdout, child process may wait for father to read data. Dead Lock. Be careful here.
#If child process has no output, p.wait() is safe.

logs=p.stderr.read()  #only could be read once
print('logs: %s'%logs)
print('status:%d'%status)

#release memory
if status==0:
    subprocess.call('rm your_local_file',shell=True)
gc.collect()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值