Pandas msgpack vs pickle
msgpack
em Pandas é suposto ser um substituto parapickle
.
PeloDocumentos do Pandas no msgpack:
Esse é um formato binário portátil leve, semelhante ao JSON binário, que é altamente eficiente em termos de espaço e oferece bom desempenho tanto na gravação (serialização) quanto na leitura (desserialização).
Acho, no entanto, que seu desempenho não parece empilhar contra picles.
df = pd.DataFrame(np.random.randn(10000, 100))
>>> %timeit df.to_pickle('test.p')
10 loops, best of 3: 22.4 ms per loop
>>> %timeit df.to_msgpack('test.msg')
10 loops, best of 3: 36.4 ms per loop
>>> %timeit pd.read_pickle('test.p')
100 loops, best of 3: 10.5 ms per loop
>>> %timeit pd.read_msgpack('test.msg')
10 loops, best of 3: 24.6 ms per loop
Pergunta, questão: Além de possíveis problemas de segurança com pickle, quais são os benefícios do msgpack sobre pickle? O pickle ainda é o método preferido de serialização de dados ou existem alternativas melhores atualmente?