pyspark读取hdfs 二进制文件 pickle 模型文件 model
我们在python环境训练的机器学习、深度学习模型二进制文件,比如pickle
如果需要提交到spark-submit上,需要先把文件上传到hdfs目录下,然后读取
hadoop fs -put 模型文件 hdfs目录
如
hadoop fs -put /opt/tmp/model_phone.pkl /home/你的用户名/env/
from pyspark import SparkConf, SparkContext
conf = SparkConf().setAppName("My test App")
sc = SparkContext(conf=conf)
"""
lines = sc.textFile("/tmp/tmp.txt")
print lines.count()
print lines.first()
"""
def load_model(sc, model_filename):
rdd = sc.binaryFiles("/tmp/test.pkl")--你的hdfs目录
import pickle
from io import BytesIO
data_arr = rdd.values().map(lambda p: pickle.load(BytesIO(p))).collect()
print(data_arr)
load_model(sc, None)
model = load_model(sc, None)[0]