apache spark - Partitionner en étincelle lors de la lecture du SGBDR via JDBC



apache-spark apache-spark-sql (1)

J'exécute spark en mode cluster et lit les données du SGBDR via JDBC.

Conformément à la docs Spark, ces paramètres de partitionnement décrivent comment partitionner la table lors de la lecture en parallèle à partir de plusieurs travailleurs:

  • partitionColumn
  • lowerBound
  • upperBound
  • numPartitions

Ce sont des paramètres facultatifs.

Que se passerait-il si je ne spécifie pas ceux-ci:

  • Un seul travailleur a lu toutes les données?
  • S'il lit toujours en parallèle, comment partitionne-t-il les données?

Si vous ne spécifiez ni { partitionColumn , lowerBound , upperBound , numPartitions } ni { predicates }, Spark utilisera un seul exécuteur et créera une seule partition non vide. Toutes les données seront traitées en utilisant une seule transaction et les lectures ne seront ni distribuées ni parallélisées.

Voir également:

  • Comment optimiser le partitionnement lors de la migration de données depuis une source JDBC?
  • Comment améliorer les performances pour les travaux Spark lents utilisant DataFrame et la connexion JDBC?




partitioning