Certaines règles de traitement du moteur Spark diffèrent de celles du service d'intégration de données.
Restrictions générales
La transformation Java est prise en charge sur le moteur Spark avec les restrictions suivantes :
Le code Java de la transformation ne peut pas écrire le résultat dans la sortie standard lorsque vous transmettez la logique de transformation à Hadoop. Le code Java peut écrire le résultat dans l'erreur standard qui s'affiche dans les fichiers journaux.
Pour les valeurs date/time, le moteur Spark prend en charge la précision jusqu'aux microsecondes. Si une valeur date/time contient des nanosecondes, les chiffres de fin sont tronqués.
Partitionnement
Lorsque la transformation Java est utilisée avec le partitionnement, les restrictions suivantes s'appliquent :
La propriété Partitionnable doit être activée dans la transformation Java. La transformation ne peut pas s'exécuter dans une seule partition.
Les restrictions suivantes s'appliquent à la propriété Portée de transformation :
La valeur Transaction de la portée de transformation n'est pas valide.
Si vous activez un port d'entrée pour la clé de partition, la portée de transformation doit être définie sur Toutes les entrées.
L'option Sans état doit être activée si la portée de transformation est row.
Validation de mappage
La validation de mappage échoue dans les cas suivants :
Vous référencez une transformation Recherche non connectée depuis une expression dans une transformation Java.
Vous sélectionnez un port d'un type de données complexe comme clé de partition ou de tri.
Vous activez le traitement des nanosecondes dans date/time et la transformation Java contient un port de type de données complexe avec un élément d'un type date/time. Par exemple, un port de type
array<data/time>
n'est pas valide si vous activez le traitement des nanosecondes dans date/time.
Le mappage échoue dans les cas suivants :
La transformation Java et le mappage utilisent des modes de précision différents lorsque la transformation Java contient un port décimal ou complexe avec un élément de type de données decimal.
Même si la haute précision est activée dans le mappage, celui-ci traite les données en mode basse précision dans certains cas, comme par exemple lorsque le mappage contient un port complexe avec un élément de type de données decimal, ou que le mappage est de type streaming. Si la haute précision est activée à la fois dans la transformation Java et dans le mappage, mais que celui-ci traite les données en mode basse précision, le mappage échoue.
Des caractères Null binaires sont transmis à un port de sortie. Pour éviter un échec de mappage, vous pouvez ajouter du code à la transformation Java qui remplace les caractères Null binaires par un autre caractère avant d'écrire les données sur les ports de sortie.
Utilisation de fichiers .jar externes
Pour utiliser les fichiers .jar externes dans une transformation Java, effectuez les étapes suivantes :
Copiez les fichiers .jar externes dans le répertoire d'installation Informatica de la machine qui exécute le service d'intégration de données à l'emplacement suivant :