Accéder au contenu principal Passer au contenu complémentaire

Propriétés du tJava pour Apache Spark Batch

Ces propriétés sont utilisées pour configurer le tJava s'exécutant dans le framework de Jobs Spark Batch.

Le composant tJava Spark Batch appartient à la famille Code Utilisateur·rice.

Le composant de ce framework est disponible dans tous les produits Talend avec Big Data nécessitant une souscription et dans Talend Data Fabric.

Basic settings

Schema et Edit Schema

Un schéma est une description de lignes. Il définit le nombre de champs (colonnes) à traiter et à passer au composant suivant. Lorsque vous créez un Job Spark, évitez le mot réservé line lors du nommage des champs.

Créez le schéma en cliquant sur le bouton Edit Schema. Si le schéma est en mode Repository, trois options sont disponibles :

  • View schema : sélectionnez cette option afin de voir uniquement le schéma.

  • Change to built-in property : sélectionnez cette option pour passer le schéma en mode Built-In et effectuer des modifications locales.

  • Update repository connection : sélectionnez cette option afin de modifier le schéma stocké dans le référentiel et décider de propager ou non les modifications à tous les Jobs.

    Si vous souhaitez propager les modifications uniquement au Job courant, cliquez sur No et sélectionnez à nouveau la métadonnée du schéma dans la fenêtre Repository Content.

Notez que, si la valeur d'entrée d'un champ primitif non nullable est nulle, la ligne de données comprenant ce champ sera rejetée.

 

Built-in : le schéma est créé et conservé localement pour ce composant seulement.

 

Repository : le schéma existe déjà et est stocké dans le Repository. Ainsi, il peut être réutilisé dans des Jobs et projets.

Code

Saisissez le code Java que vous souhaitez exécuter afin de traiter les données RDD provenant du lien d'entrée ou même créer de nouveaux RDD à partir de celui d'entrée.

Vous pouvez tirer parti du schéma, de la connexion et du nom du composant pour écrire le code personnalisé. Par exemple, si ce composant s'appelle tJava_1 et que la connexion à ce composant s'appelle row1, la classe du RDD d'entrée est row1Struct et le RDD d'entrée lui-même est disponible avec la variable rdd_tJava_1.

Pour des instructions plus détaillées, consultez le commentaire par défaut fourni dans le champ Code de ce composant.

Pour plus d'informations concernant l'API Java Spark, consultez la documentation Apache Spark à l'adresse https://spark.apache.org/docs/latest/api/java/index.html (en anglais).

Advanced settings

Classes

Définissez les classes à utiliser dans le code écrit dans le champ Code de la vue Basic settings.

Il est recommandé de définir de nouvelles classes dans ce champ et non dans le champ Code, afin d'éviter d'éventuelles exceptions dans la sérialisation.

Importer

Saisissez le code Java permettant d'importer, si nécessaire, les librairies externes utilisées dans le champ Code de l'onglet Basic settings.

Utilisation

Règle d'utilisation

Ce composant est utilisé en tant que composant de fin et requiert un lien d'entrée.

Exemple de code Dans le champ Code de l'onglet Basic settings, saisissez le code suivant afin de créer un RDD de sortie en utilisant des transformations personnalisées sur le RDD d'entrée. mapInToOut est une classe à définir dans le champ Classes, dans l'onglet Advanced settings.
outputrdd_tJava_1 = rdd_tJava_1.map(new mapInToOut(job));
Dans le champ Classes de l'onglet Advanced settings, saisissez le code suivant afin de définir la classe mapInToOut :
public static class mapInToOut implements
  org.apache.spark.api.java.function.Function<inputStruct,RecordOut_tJava_1>{

     private ContextProperties context = null;
     private java.util.List<org.apache.avro.Schema.Field> fieldsList;
		
     public mapInToOut(JobConf job) {
	   this.context = new ContextProperties(job);
     }
		
     @Override
     public RecordOut_tJava_1 call(inputStruct origStruct) {		
			
	 if (fieldsList == null) {
	     this.fieldsList = (new inputStruct()).getSchema()
			.getFields();
	 }

	 RecordOut_tJava_1 value = new RecordOut_tJava_1();

	 for (org.apache.avro.Schema.Field field : fieldsList) {
	      value.put(field.pos(), origStruct.get(field.pos()));
	 }

	 return value;		
			
      }
}

Connexion à Spark

Dans l'onglet Spark Configuration de la vue Run, définissez la connexion à un cluster Spark donné pour le Job complet. De plus, puisque le Job attend ses fichiers .jar dépendants pour l'exécution, vous devez spécifier le répertoire du système de fichiers dans lequel ces fichiers .jar sont transférés afin que Spark puisse accéder à ces fichiers :
  • Yarn mode (Yarn Client ou Yarn Cluster) :
    • Lorsque vous utilisez Google Dataproc, spécifiez un bucket dans le champ Google Storage staging bucket de l'onglet Spark configuration.

    • Lorsque vous utilisez HDInsight, spécifiez le blob à utiliser pour le déploiement du Job, dans la zone Windows Azure Storage configuration de l'onglet Spark configuration.

    • Lorsque vous utilisez Altus, spécifiez le bucket S3 ou le stockage Azure Data Lake Storage (aperçu technique) pour le déploiement du Job, dans l'onglet Spark configuration.
    • Lorsque vous utilisez des distributions sur site (on-premises), utilisez le composant de configuration correspondant au système de fichiers utilisé par votre cluster. Généralement, ce système est HDFS et vous devez utiliser le tHDFSConfiguration.

  • Standalone mode : utilisez le composant de configuration correspondant au système de fichiers que votre cluster utilise, comme le tHDFSConfiguration Apache Spark Batch ou le tS3Configuration Apache Spark Batch.

    Si vous utilisez Databricks sans composant de configuration dans votre Job, vos données métier sont écrites directement dans DBFS (Databricks Filesystem).

Cette connexion fonctionne uniquement pour le Job dans lequel vous l'avez définie.

Limitation

La connaissance des langages Spark et Java est nécessaire.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.