web-dev-qa-db-fra.com

Pourquoi Apache-Spark - Python est-il si lent localement par rapport aux pandas?

A Spark newbie here. J'ai récemment commencé à jouer avec Spark sur ma machine locale sur deux cœurs en utilisant la commande:

pyspark --master local[2]

J'ai un fichier texte de 393 Mo qui comprend près d'un million de lignes. Je voulais effectuer une opération de manipulation de données. J'utilise les fonctions de trame de données intégrées de PySpark pour effectuer des opérations simples comme groupBy, sum, max, stddev.

Cependant, lorsque je fais exactement les mêmes opérations dans pandas sur le même ensemble de données exact, pandas semble vaincre pyspark par une énorme marge en termes de latence).

Je me demandais quelle pourrait être une raison possible à cela. J'ai quelques réflexions.

  1. Les fonctions intégrées font-elles le processus de sérialisation/désérialisation de manière inefficace? Si oui, quelles sont leurs alternatives?
  2. L'ensemble de données est-il trop petit pour ne pas dépasser les frais généraux de la machine virtuelle Java sous-jacente sur laquelle s'exécute spark?

Merci d'avoir regardé. Très appréciée.

25
Raj

Car:

Vous pouvez continuer comme ça pendant longtemps ...

41
user9366962