En utilisant
dd = {'ID': ['H576','H577','H578','H600', 'H700'],
'CD': ['AAAAAAA', 'BBBBB', 'CCCCCC','DDDDDD', 'EEEEEEE']}
df = pd.DataFrame(dd)
Pre Pandas 0,25, cela ci-dessous a fonctionné.
set: redisConn.set("key", df.to_msgpack(compress='zlib'))
get: pd.read_msgpack(redisConn.get("key"))
Maintenant, il y a des avertissements obsolètes ..
FutureWarning: to_msgpack is deprecated and will be removed in a future version.
It is recommended to use pyarrow for on-the-wire transmission of pandas objects.
The read_msgpack is deprecated and will be removed in a future version.
It is recommended to use pyarrow for on-the-wire transmission of pandas objects.
Comment fonctionne pyarrow? Et, comment puis-je faire entrer et revenir des objets pyarrow à partir de Redis.
reference: Comment définir/obtenir pandas.DataFrame vers/depuis Redis?
Voici un exemple complet d'utilisation de pyarrow pour la sérialisation d'une trame de données pandas à stocker dans redis
apt-get install python3 python3-pip redis-server
pip3 install pandas pyarrow redis
puis en python
import pandas as pd
import pyarrow as pa
import redis
df=pd.DataFrame({'A':[1,2,3]})
r = redis.Redis(Host='localhost', port=6379, db=0)
context = pa.default_serialization_context()
r.set("key", context.serialize(df).to_buffer().to_pybytes())
context.deserialize(r.get("key"))
A
0 1
1 2
2 3
Je viens de soumettre PR 28494 à pandas pour inclure cet exemple pyarrow dans les documents.
Documents de référence: