복붙노트

[REDIS] 세트 / pyarrow를 사용하여 레디 스에 팬더의 dataframes을 얻을 방법

REDIS

세트 / pyarrow를 사용하여 레디 스에 팬더의 dataframes을 얻을 방법

사용

dd = {'ID': ['H576','H577','H578','H600', 'H700'],
      'CD': ['AAAAAAA', 'BBBBB', 'CCCCCC','DDDDDD', 'EEEEEEE']}
df = pd.DataFrame(dd)

사전 팬더 0.25이 아래했습니다.

set:  redisConn.set("key", df.to_msgpack(compress='zlib'))
get:  pd.read_msgpack(redisConn.get("key"))

이제 사용되지 않는 경고가 있습니다 ..

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.

어떻게 pyarrow 작동합니까? 그리고, 방법에 다시 레디 스에서 pyarrow 객체를 내가받을 수 있나요.

참고: 어떻게 레디 스에서 /로 설정 / GET pandas.DataFrame에?

해결법

  1. ==============================

    1.다음은 팬더의 직렬화를 사용 pyarrow에 전체 예 레디 스에 가게에 dataframe의

    다음은 팬더의 직렬화를 사용 pyarrow에 전체 예 레디 스에 가게에 dataframe의

    apt-get install python3 python3-pip redis-server
    pip3 install pandas pyarrow redis
    

    다음 파이썬

    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
    

    난 그냥 문서에서이 pyarrow 예를 포함하는 팬더에 PR 28494를 제출했다.

    참조 문서 :

  2. from https://stackoverflow.com/questions/57949871/how-to-set-get-pandas-dataframes-into-redis-using-pyarrow by cc-by-sa and MIT license