Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在CloudML中读取Tensorflow中的pickle文件_Python_Pandas_Tensorflow_Google Cloud Ml - Fatal编程技术网

Python 在CloudML中读取Tensorflow中的pickle文件

Python 在CloudML中读取Tensorflow中的pickle文件,python,pandas,tensorflow,google-cloud-ml,Python,Pandas,Tensorflow,Google Cloud Ml,我在尝试读取pandas pickle时出错,例如df.to_pickle()方法,该方法存储在Google云存储中。我正在努力做到以下几点: path_to_gcs_file = 'gs://xxxxx' f = file_io.FileIO(path_to_gcs_file, mode='r').read() train_df = pd.read_pickle(f) f.close() 我得到以下错误: UnicodeDecodeError: 'utf-8' codec can't dec

我在尝试读取pandas pickle时出错,例如
df.to_pickle()
方法,该方法存储在Google云存储中。我正在努力做到以下几点:

path_to_gcs_file = 'gs://xxxxx'
f = file_io.FileIO(path_to_gcs_file, mode='r').read()
train_df = pd.read_pickle(f)
f.close()
我得到以下错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
或者,我尝试:

f = BytesIO(file_io.read_file_to_string(path_to_gcs_file, binary_mode=True))
train_df = pd.read_pickle(f)
它可以在本地工作,但不能在CloudML上工作

f = file_io.read_file_to_string(path_to_gcs_file, binary_mode=True)
train_df = pd.read_pickle(f)
给我一个错误:
AttributeError:“bytes”对象没有属性“seek”

您应该可以不用使用上下文管理器,但我认为您这样做是为了结束证书,因此您应该通过api下载该文件

pip install --upgrade google-cloud-storage
然后

从这个答案中可以看出:

您应该可以不用使用上下文管理器,但我认为您这样做是在结束证书,因此您应该通过api下载文件

pip install --upgrade google-cloud-storage
然后

从这个答案中可以看出:

pandas.read\u pickle
接受路径作为第一个参数;您正在传递一个
文件
对象(
文件.FileIO
)和一个
字节
对象(
读取到字符串

到目前为止,我还没有找到一种使用pandas直接从GCS读取pickle对象的方法,因此您必须将其复制到机器上。您可以使用
文件\u io.copy
进行以下操作:

file_io.copy('gs://xxxx', '/tmp/x.pkl')
train_df = pd.read_pickle('/tmp/x.pkl')

pandas.read\u pickle
接受路径作为第一个参数;您正在传递一个
文件
对象(
文件.FileIO
)和一个
字节
对象(
读取到字符串

到目前为止,我还没有找到一种使用pandas直接从GCS读取pickle对象的方法,因此您必须将其复制到机器上。您可以使用
文件\u io.copy
进行以下操作:

file_io.copy('gs://xxxx', '/tmp/x.pkl')
train_df = pd.read_pickle('/tmp/x.pkl')

我发现UnicodeDecodeError:“ascii”编解码器无法对6488位置的字节0xff进行解码:序号不在范围(128)内。我猜这可能是python版本的问题?我也在使用
df.to_pickle()
创建pickle。您是否尝试过上述方法?pickle.load()将返回一个df对象如果原始转储对象是dfYes,您的确切代码会给出错误I commentedI查找字节,它是“mhmzg==”,看起来像证书的结尾。有没有可能你也拿到了安全证书?你能用一个原始test.txt文件试试吗?我发现UnicodeDecodeError:“ascii”编解码器无法对6488位的字节0xff进行解码:序号不在范围内(128)。我猜这可能是python版本的问题?我也在使用
df.to_pickle()
创建pickle。您是否尝试过上述方法?pickle.load()将返回一个df对象如果原始转储对象是dfYes,您的确切代码会给出错误I commentedI查找字节,它是“mhmzg==”,看起来像证书的结尾。有没有可能你也拿到了安全证书?你能用一个原始的test.txt文件试试吗?我得到了错误:ImportError:读取pickle时没有名为index.base的模块我也在尝试:`f=file\u io.FileIO(path\u to\u gcs,mode='r')`和
train\u df=pickle.load(f)
而且它也不工作…UnicodeDecodeError:“utf-8”编解码器无法解码位置0处的字节0x80:无效的start bytedid您尝试
mode='rb'
?我得到错误:ImportError:读取pickle时没有名为index.base的模块我也在尝试:`f=file\u io.FileIO(路径到\u gcs,mode='r')`和
train\u df=pickle.load(f)
而且它也不起作用…UnicodeDecodeError:“utf-8”编解码器无法解码位置0中的字节0x80:无效的起始字节ID是否尝试
模式='rb'