# tJava properties for Apache Spark Streaming (deprecated)

Availability-note[Deprecated](https://help.talend.com/r/en-US/Cloud/labels-on-talend-help-center/availability-deprecated)

This content is deprecated.

These properties are used to configure tJava running in the Spark Streaming Job framework.

Information noteDeprecation: Spark Streaming is deprecated beginning with the R2026-09 release. Use Spark Structured Streaming instead.

The Spark Streaming tJava component belongs to the Custom Code family.

This component is available in Talend Real-Time Big Data Platform and Talend Data Fabric.

## Basic settings

| Properties | Description |
| --- | --- |
| Schema et Edit Schema | <ul> <li> <p>A schema is a row description. It defines the number of fields            (columns) to be processed and passed on to the next component. When you create a Spark            Job, avoid the reserved word <kbd>line</kbd> when naming the            fields.</p> <p>Click <span>Edit        schema</span> to make changes to the schema. If the current schema is of the <span>Repository</span> type, three options are available:</p> <ul> <li> <p> <span>View schema</span>: choose this                option to view the schema only.</p> </li> <li> <p> <span>Change to built-in property</span>:                choose this option to change the schema to <span>Built-in</span> for local changes.</p> </li> <li> <p> <span>Update repository connection</span>:                choose this option to change the schema stored in the repository and decide whether                to propagate the changes to all the Jobs upon completion.</p> <p>If you just want to                propagate the changes to the current Job, you can select <span>No</span> upon completion and choose this schema metadata                again in the <span>Repository Content</span>                window.</p> </li> </ul> <p>Note that if the input value of any non-nullable primitive field is                            null, the row of data including that field will be rejected.</p> </li> <li> <p> <span>Built-In</span>: You create and store the schema locally for this component                only.</p> </li> <li> <p> <span>Repository</span>: You have already created the schema and stored it in the                Repository. You can reuse it in various projects and Job designs.</p> </li> </ul> |
| Code | Type in the Java code you want to execute to process the incoming RDD<br>from the input link or even create new RDDs out of this input one.<br><br>You need to leverage the schema, the link and the component name to<br>write the custom code. For example, if this component is labeled<br>*tJava\_1* and the connection to it<br>is labeled *row1*, then the class of<br>the input RDD is *row1Struct* and the<br>input RDD itself is available with the *rdd\_tJava\_1* variable.<br><br>For more detailed instructions, see the default comment provided in<br>the Code field of this<br>component.<br><br>For further information about Spark Java API, see<br>Apache's Spark documentation in https://spark.apache.org/docs/latest/api/java/index.html. |

## Advanced settings

| Properties | Description |
| --- | --- |
| Classes | Define the classes that you need to use in the code written in the Code field in the Basic settings<br>view.<br><br>It is recommended to define new classes in this field, instead of in the Code field, so as to avoid<br>eventual exceptions in serialization. |
| Import | Enter the Java code to import, if necessary, external libraries<br>used in the Code field of the Basic settings view. |

## Usage

| Usage guidance | Description |
| --- | --- |
| **Usage rule** | This component is used as an end component and requires an input link. |
| Code example | In the Code field of the Basic settings view,<br>enter the following code to create an output RDD by using custom transformations on the<br>input RDD. mapInToOut is a class to be defined in the<br>Classes field in the Advanced settings<br>view.<br><br>```<br>outputrdd_tJava_1 = rdd_tJava_1.map(new mapInToOut(job));<br>```<br><br>In<br>the Classes field of the Advanced settings<br>view, enter the following code to define the mapInToOut<br>class:<br><br>```<br>public static class mapInToOut implements<br>org.apache.spark.api.java.function.Function<inputStruct,RecordOut_tJava_1>{<br><br>private ContextProperties context = null;<br>private java.util.List<org.apache.avro.Schema.Field> fieldsList;<br>		<br>public mapInToOut(JobConf job) {<br>	   this.context = new ContextProperties(job);<br>}<br>		<br>@Override<br>public RecordOut_tJava_1 call(inputStruct origStruct) {		<br>			<br>	 if (fieldsList == null) {<br>	     this.fieldsList = (new inputStruct()).getSchema()<br>			.getFields();<br>	 }<br><br>	 RecordOut_tJava_1 value = new RecordOut_tJava_1();<br><br>	 for (org.apache.avro.Schema.Field field : fieldsList) {<br>	      value.put(field.pos(), origStruct.get(field.pos()));<br>	 }<br><br>	 return value;		<br>			<br>}<br>}<br>``` |
| Spark Connection | In the Spark<br>Configuration tab in the Run<br>view, define the connection to a given Spark cluster for the whole Job. In<br>addition, since the Job expects its dependent jar files for execution, you must<br>specify the directory in the file system to which these jar files are<br>transferred so that Spark can access these files:<br><br><ul> <li> <div> <span>Yarn mode</span> (Yarn client or Yarn cluster):<ul> <li> <p>When using Google Dataproc, specify a bucket in the                                            <span>Google Storage staging bucket</span>                                        field in the <span>Spark configuration</span>                                        tab.</p> </li> <li> <p>When using HDInsight, specify the blob to be used for Job                                        deployment in the <span>Windows Azure Storage                                            configuration</span> area in the <span>Spark                                            configuration</span> tab.</p> </li> <li>When using Altus, specify the S3 bucket or the Azure                                    Data Lake Storage for Job deployment in the <span>Spark                                        configuration</span> tab.</li> <li> <p>When using on-premises distributions, use                                        the configuration component corresponding to the file system                                        your cluster is using. Typically, this system is HDFS and so                                        use <a href="https://help.qlik.com/talend/r/en-US/8.0/components/hdfs/thdfsconfiguration">tHDFSConfiguration</a>.</p> </li> </ul> </div> </li> <li> <p> <span>Standalone mode</span>: use the                            configuration component corresponding to the file system your cluster is                            using, such as <a href="https://help.qlik.com/talend/r/en-US/8.0/components/hdfs/thdfsconfiguration-properties-for-apache-spark-batch">tHDFSConfiguration Apache Spark Batch</a> or <a href="https://help.qlik.com/talend/r/en-US/8.0/components/amazon-s3/ts3configuration-properties-for-apache-spark-batch">tS3Configuration Apache Spark Batch</a>.</p> <p>If you are using Databricks without any configuration component present                            in your Job, your business data is written directly in DBFS (Databricks                            Filesystem).</p> </li> </ul><br><br>This connection is effective on a per-Job basis. |