Alguém já fez benchmarks?
Sim, o benchmark que você vinculou na sua pergunta foi atualizado recentemente para a versão recente do data.table e pandas. Além disso, outro software foi adicionado. Você pode encontrar um benchmark atualizado em https://h2oai.github.io/db-benchmark
Infelizmente, ele está programado na máquina de memória de 125 GB (não 244 GB como a original). Como resultado, os pandas e ask não conseguem tentar dados de groupby
1e9 linhas (50 GB csv) porque ficam sem memória ao ler dados. Portanto, para pandas vs data.table, é necessário examinar 1e8 linhas (5GB) de dados.
Para não apenas vincular o conteúdo que você está solicitando, colo horários recentes para essas soluções.
observe que esses horários estão desatualizados,
visite https://h2oai.github.io/db-benchmark para obter horários atualizados
| in_rows|question | data.table| pandas|
|-------:|:---------------------|----------:|------:|
| 1e+07|sum v1 by id1 | 0.140| 0.414|
| 1e+07|sum v1 by id1:id2 | 0.411| 1.171|
| 1e+07|sum v1 mean v3 by id3 | 0.574| 1.327|
| 1e+07|mean v1:v3 by id4 | 0.252| 0.189|
| 1e+07|sum v1:v3 by id6 | 0.595| 0.893|
| 1e+08|sum v1 by id1 | 1.551| 4.091|
| 1e+08|sum v1 by id1:id2 | 4.200| 11.557|
| 1e+08|sum v1 mean v3 by id3 | 10.634| 24.590|
| 1e+08|mean v1:v3 by id4 | 2.683| 2.133|
| 1e+08|sum v1:v3 by id6 | 6.963| 16.451|
| 1e+09|sum v1 by id1 | 15.063| NA|
| 1e+09|sum v1 by id1:id2 | 44.240| NA|
| 1e+09|sum v1 mean v3 by id3 | 157.430| NA|
| 1e+09|mean v1:v3 by id4 | 26.855| NA|
| 1e+09|sum v1:v3 by id6 | 120.376| NA|
Em 4 de 5 perguntas, o data.table é mais rápido e podemos ver que ele é melhor.
Basta notar esta horários são a partir de agora , onde id1
, id2
e id3
são campos de caracteres. Esses serão alterados em breve para categórico CONCLUÍDO . Além disso, existem outros fatores que possam afetar esses horários no futuro próximo (como agrupamento em paralelo DONE ). Também adicionaremos benchmarks separados para dados com NAs e várias cardinalidades CONCLUÍDAS .
Outras tarefas estão chegando a esse projeto de benchmarking contínuo; portanto, se você estiver interessado join
,sort
, read
e outros não se esqueça de verificá-lo mais tarde.
E é claro que você pode enviar comentários no repositório de projetos!