Truques elegantes em um notebook em um computador pessoal (laptop) são bons e interessantes. Mas assim que se trata de executar o código em um loop produtivo, uma série de restrições aparecem imediatamente na forma:
- a quantidade de ferro disponível;
- requisitos de desempenho;
- estabilidade;
- conformidade com os requisitos de IS;
- … (Adicione especiarias a gosto).
Hoje, na Rússia, há uma fase em que a linguagem python é posicionada como uma "bala de prata" para tarefas de ciência de dados. Parece que tal tese foi apresentada por aqueles que vendem cursos de DS em python. E então o volante voou. Em geral, isso é normal - quase todos os processos no mundo físico são oscilatórios.
Mas, no entanto, neste hype eles são um pouco subestimados. Existem vários momentos irritantes em python, mesmo em tarefas básicas do DS, que complicam muito seu uso em um circuito produtivo.
Problema 1
O nome do problema é BlockManager
. Este é um dos pilares da arquitetura pandas
. Externamente manifestado no fato de que:
- a memória consome "como se não fosse em si mesma";
- o tempo de execução do código depende dos estados anteriores do interpretador e da sequência de operações e pode variar em várias ordens de magnitude.
, . .
, , :
- 'The one pandas internal I teach all my new colleagues: the BlockManager';
-
BlockManager
pandas
Wes McKinney 'What is BlockManager and why does it exist?'; - Wes McKinney 'Apache Arrow and the "10 Things I Hate About pandas"'.
2
pandas
+ sql
/spark
( — ) data.table
+ Clickhouse
( data.frame
). Database-like ops benchmark. , .
3
Story-telling . Literate Programming. . python
, , Rmarkdown
.
É claro que nossas tendências são formadas por cursos e requisitos para vagas no hh.ru. Mas se falamos sobre como resolver problemas práticos em uma empresa, usar o pacote R
+ Clickhouse
torna-se muito mais lucrativo. Você também pode adicionar a este clipe golang
, também uma ótima ferramenta.
Fin, pegue seu napalm.

Publicação anterior - "R, Monte Carlo and Enterprise Problems, Part 2" .