[英]How to load pickle(.pkl) file from S3 bucket
I have successfully read the csv file from Amazon S3. 我已成功从Amazon S3读取csv文件。 But I have .pkl file of sentiment model.
但我有情绪模型的.pkl文件。 I want to load this .pkl file to predict sentiment.
我想加载这个.pkl文件来预测情绪。 Here is my code -
这是我的代码 -
import cPickle
import boto3
import pandas as pd
import boto3.session
session = boto3.session.Session(region_name='eu-central-1')
s3client = session.client('s3', config= boto3.session.Config(signature_version='s3v4'),aws_access_key_id='my-ACCESS-KEY-ID',
aws_secret_access_key='my-ACCESS-KEY')
response = s3client.get_object(Bucket='sentiment-data', Key='positive_model_data.pkl')
nb_detector = cPickle.load(open(response['Body']))
nb_predict = nb_detector.predict('food is very good')[0]
print nb_predict
Error coercing to Unicode: need string or buffer, StreamingBody found 强制转换为Unicode时出错:需要字符串或缓冲区,找到StreamingBody
How to load pickel file from S3??? 如何从S3加载pickel文件???
cPickle.load()
method requires a file. cPickle.load()
方法需要一个文件。 You need to use loads
method instead of load
. 您需要使用
loads
方法而不是load
。 loads
requires string data, as stated in the error message. loads
需要字符串数据,如错误消息中所述。 However, response['Body']
gives you StreamingBody
. 但是,
response['Body']
为您提供StreamingBody
。 StreamingBody
has a method named read
which can return string content. StreamingBody
有一个名为read
的方法,它可以返回字符串内容。
...
body_string = response['Body'].read()
positive_model_data = cPickle.loads(body_string)
print positive_model_data
...
Does it work for you? 对你起作用吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.