EMR Serverless Spark s'exécute sur Apache Spark et traite toutes les tâches via du code Java ou Scala sur une machine virtuelle Java (JVM) standard. Cette rubrique décrit le format des versions du moteur, les versions des composants incluses dans chaque version du moteur, ainsi que les substitutions de configuration Spark par défaut susceptibles d'influencer le comportement des jobs.
Format du numéro de version
Chaque version du moteur suit le format esr- (Spark , Scala **).
| Segment |
Signification |
esr-** |
Numéro de version EMR Serverless Spark. Par exemple, esr-2.1. |
Spark ** |
Version d'Apache Spark sur laquelle le moteur est construit. Par exemple, Spark 3.3.1 indique que le moteur repose sur Apache Spark 3.3.1. |
Scala ** |
Version de Scala prise en charge par cette version du moteur. Par exemple, Scala 2.12. |
Utilisez l'environnement d'exécution du moteur Fusion pour accéder aux technologies vectorielles et aux bibliothèques natives, ce qui peut améliorer les performances d'exécution des applications SQL. Pour plus d'informations, consultez la rubrique Moteur Fusion .
Versions du moteur et prise en charge des formats de table lac
Les tableaux suivants répertorient les versions des composants incluses dans chaque version du moteur. Un tiret (-) indique que la version du moteur ne prend pas en charge ce composant.
Série 5.x
| Version du moteur |
Version Spark |
Version Scala |
Version Delta Lake |
Version Apache Hudi |
Version Apache Iceberg |
Version Apache Paimon |
Version JDK |
| esr-5.3.0 |
4.1.1 |
2.13 |
4.2.0 |
- |
- |
1,4 |
JDK 17 |
| esr-5.2.0 |
4.0.1 |
2.13 |
- |
- |
- |
1,3 |
JDK 17 |
| esr-5.1.0 |
4.0.1 |
2.13 |
- |
- |
- |
1,3 |
JDK 17 |
| esr-5.0.0 |
4.0.1 |
2.13 |
- |
- |
- |
1,3 |
JDK 17 |
Série 4.x
| Version du moteur |
Version Spark |
Version Scala |
Version Delta Lake |
Version Hudi |
Version Iceberg |
Version Paimon |
Version JDK |
| esr-4.9.1, esr-4.9.0 |
3.5.2 |
2.12 |
3.3.2 |
0.15 |
1.10.1 |
1,4 |
JDK 17 |
| esr-4.8.0 |
3.5.2 |
2.12 |
3.3.2 |
0.15 |
1.9.2 |
1,3 |
JDK 17 |
| esr-4.7.0 |
3.5.2 |
2.12 |
3.2.1 |
0.15 |
1.9.2 |
1,3 |
JDK 17 |
| esr-4.6.0 |
3.5.2 |
2.12 |
3.2.1 |
0.15 |
1.9.2 |
1,3 |
JDK 17 |
| esr-4.5.1, esr-4.5.0 |
3.5.2 |
2.12 |
3.2.1 |
0.15 |
1.9.2 |
1,2 |
JDK 17 |
| esr-4.4.1, esr-4.4.0 |
3.5.2 |
2.12 |
3.2.1 |
0.15 |
1.5.0 |
1,2 |
JDK 8 |
| esr-4.3.0 |
3.5.2 |
2.12 |
3.2.1 |
0.15 |
1.5.0 |
1,1 |
JDK 8 |
| esr-4.2.0 |
3.5.2 |
2.12 |
3.2.1 |
0.15 |
1.5.0 |
1,0 |
JDK 8 |
| esr-4.1.1, esr-4.1.0 |
3.5.2 |
2.12 |
3.2.1 |
0.15 |
1.5.0 |
1,0 |
JDK 8 |
| esr-4.0.0 |
3.5.2 |
2.12 |
3.2.1 |
0.15 |
1.5.0 |
1,0 |
JDK 8 |
Série 3.x
| Version du moteur |
Version Spark |
Version Scala |
Version Delta Lake |
Version Hudi |
Version Iceberg |
Version Paimon |
Version JDK |
| esr-3.8.0 |
3.4.4 |
2.12 |
3.0.0 |
0.15 |
1.5.0 |
1,4 |
JDK 8 |
| esr-3.7.0 |
3.4.4 |
2.12 |
3.0.0 |
0.15 |
1.5.0 |
1,3 |
JDK 8 |
| esr-3.6.0 |
3.4.4 |
2.12 |
3.0.0 |
0.15 |
1.5.0 |
1,3 |
JDK 8 |
| esr-3.5.0 |
3.4.4 |
2.12 |
3.0.0 |
0.15 |
1.5.0 |
1,3 |
JDK 8 |
| esr-3.4.1, esr-3.4.0 |
3.4.4 |
2.12 |
3.0.0 |
0.15 |
1.5.0 |
1,2 |
JDK 8 |
| esr-3.3.1, esr-3.3.0 |
3.4.4 |
2.12 |
3.0.0 |
0.15 |
1.5.0 |
1,1 |
JDK 8 |
| esr-3.2.0 |
3.4.4 |
2.12 |
3.0.0 |
0.15 |
1.5.0 |
1,0 |
JDK 8 |
| esr-3.1.1, esr-3.1.0 |
3.4.4 |
2.12 |
3.0.0 |
0.15 |
1.5.0 |
1,0 |
JDK 8 |
| esr-3.0.1, esr-3.0.0 |
3.4.3 |
2.12 |
3.0.0 |
0.15 |
1.5.0 |
1,0 |
JDK 8 |
Série 2.x
| Version du moteur |
Version Spark |
Version Scala |
Version Delta Lake |
Version Hudi |
Version Iceberg |
Version Paimon |
Version JDK |
| esr-2.9.0 |
3.3.1 |
2.12 |
2.2.0 |
0.15 |
1.5.0 |
1,3 |
JDK 8 |
| esr-2.8.1, esr-2.8.0 |
3.3.1 |
2.12 |
2.2.0 |
0.15 |
1.5.0 |
1,2 |
JDK 8 |
| esr-2.7.1, esr-2.7.0 |
3.3.1 |
2.12 |
2.2.0 |
0.15 |
1.1.0 |
1,1 |
JDK 8 |
| esr-2.6.0 |
3.3.1 |
2.12 |
2.2.0 |
0.14 |
1.1.0 |
1,0 |
JDK 8 |
| esr-2.5.1, esr-2.5.0 |
3.3.1 |
2.12 |
2.2.0 |
0.14 |
1.1.0 |
1,0 |
JDK 8 |
| esr-2.4.1, esr-2.4.0 |
3.3.1 |
2.12 |
2.2.0 |
0.14 |
1.1.0 |
1,0 |
JDK 8 |
| esr-2.2.3, esr-2.2.2, esr-2.2 |
3.3.1 |
2.12 |
2.2.0 |
0.14 |
1.1.0 |
0,9 |
JDK 8 |
| esr-2.1 |
3.3.1 |
2.12 |
2.2.0 |
0.14 |
1.1.0 |
0,9 |
JDK 8 |
Ajustements des paramètres par défaut
Afin d'améliorer les performances et la stabilité, EMR Serverless Spark substitue certaines configurations Spark par défaut. Ces substitutions s'appliquent à toutes les versions du moteur (de esr-2.x à esr-5.x) et peuvent entraîner des différences de comportement des jobs par rapport à Spark open source. Avant d'exécuter vos jobs, évaluez l'impact de ces modifications sur votre logique métier.
| Paramètre |
Valeur par défaut EMR Serverless Spark |
Valeur par défaut Spark open source |
Impact potentiel |
spark.sql.sources.partitionOverwriteMode |
DYNAMIC |
STATIC |
Avec DYNAMIC, seules les partitions incluses dans les données de sortie sont écrasées. Avec STATIC, toutes les partitions existantes du chemin cible sont écrasées, même si elles ne contiennent aucune nouvelle donnée. Les jobs reposant sur un remplacement complet des partitions doivent prendre en compte cette différence. |
spark.sql.mapKeyDedupPolicy |
LAST_WIN |
EXCEPTION |
Avec LAST_WIN, les clés de map en double sont résolues silencieusement en conservant la dernière valeur. Avec EXCEPTION, les clés de map en double génèrent une erreur. Les jobs qui dépendaient auparavant du déclenchement d'erreurs pour la validation des données n'échoueront pas comme prévu. |