Я пытаюсь загрузить маринованный фрейм данных панд из Google Cloud Storage в App Engine.
Я использую blob.download_to_file () для чтения потока в панды, однако я сталкиваюсь со следующей ошибкой:UnpicklingError: invalid load key, m
Я пытался искать начало безрезультатно, и я почти уверен, что в моем понимании чего-то не хватает.
При попытке передать объект открытого файла и прочитать оттуда, я получаю UnsupportedOperation: write
ошибка
from io import BytesIO
from google.cloud import storage
def get_byte_fileobj(project, bucket, path) -> BytesIO:
blob = _get_blob(bucket, path, project)
byte_stream = BytesIO()
blob.download_to_file(byte_stream)
byte_stream.seek(0)
return(byte_stream)
def _get_blob(bucket_name, path, project):
credentials = service_account.Credentials.from_service_account_file(
service_account_credentials_path) if service_account_credentials_path else None
storage_client = storage.Client(project=project, credentials=credentials)
bucket = storage_client.get_bucket(bucket_name)
blob = bucket.blob(path)
return(blob)
fileobj = get_byte_fileobj(projectid, 'backups', 'Matches/Matches.pickle')
pd.read_pickle(fileobj)
В идеале панды просто читали бы с рассола, поскольку все мои резервные копии GCS находятся в этом формате, но я открыт для предложений.