# tWriteXMLFields properties for Apache Spark Streaming

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

The Spark Streaming tWriteXMLFields component belongs to the Processing family.

The streaming version of this component is available in Talend Real Time Big Data Platform and in Talend Data Fabric.

## Basic settings

| Output type | Select the type of the data to be outputted into the target file. The data is<br>byte arrays if you select byte. |
| --- | --- |
| Schema and Edit<br>Schema | A schema is a row description. It defines the number of fields<br>(columns) to be processed and passed on to the next component. When you create a Spark<br>Job, avoid the reserved word line when naming the<br>fields.<br><br>The schema of this component is read-only. You can click<br>Edit schema to view the schema.<br><br>When the output type is String, the read-only single column is messageContent. This column is used to provide strings to the output components<br>such as tJMSOutput.<br><br>When the output type is byte, the read-only single column is serializedValue. This column is used to provide byte arrays to the output<br>components such as tKafkaOutput.<br><br>The output schema and its read-only column can be seen by<br>clicking the Row &gt; Output link to the<br>component that follows in the same Job. The schema is displayed in the Basic settings tab of the Component view |
| Row tag | Specify the tag that will wrap data and structure per row. |
| Custom encoding | You may encounter encoding issues when you process the stored data. In that<br>situation, select this check box to display the Encoding list.<br><br>Select the encoding from the list or select Custom<br>and define it manually. This field is compulsory for database data handling. The<br>supported encodings depend on the JVM that you are using. For more information, see<br>[https://docs.oracle.com](https://docs.oracle.com/). |

## Advanced settings

| Root tags | Select this check box to change the separator used for numbers. By default, the thousands separator is a comma (*,*) and the decimal separator is a period (*.*). |
| --- | --- |
| Output format | Define the output format.<br><br><ul> <li> <p> <span>Column</span>: The columns retrieved        from the input schema.</p> </li> <li> <p> <span>As attribute</span>: select check box            for the column(s) you want to use as attribute(s) of the parent            element in the XML output. </p> </li> </ul><br><br>Information noteNote:<br><br>If the same column is selected in both the Output format table as an attribute<br>and in the Use dynamic grouping<br>setting as the criterion for dynamic grouping, only the dynamic<br>group setting will take effect for that column.<br><br><br>Use schema column name: By<br>default, this check box is selected for all columns so that the<br>column labels from the input schema are used as data wrapping tags.<br>If you want to use a different tag than from the input schema for<br>any column, clear this check box for that column and specify a tag<br>label between quotation marks in the Label field. |
| Use dynamic grouping | Select this check box if you want to dynamically group the output<br>columns. Click the plus button to add one ore more grouping criteria<br>in the Group by table.<br><br><br>Column: Select a column you want<br>to use as a wrapping element for the grouped output rows.<br><br><br>Attribute label: Enter an<br>attribute label for the group wrapping element, between quotation<br>marks. |

## Usage

| **Usage rule** | This component is used as an intermediate step.<br><br>This component, along with the Spark Streaming component Palette it belongs to, appears<br>only when you are creating a Spark Streaming Job.<br><br>Note that in this documentation, unless otherwise explicitly stated, a scenario presents<br>only Standard Jobs, that is to say traditional<br>Talend<br>data<br>integration Jobs. |
| --- | --- |
| 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>When using Qubole, add a                                        <span>tS3Configuration</span> to your Job to write                                    your actual business data in the S3 system with Qubole. Without                                        <span>tS3Configuration</span>, this business data is                                    written in the Qubole HDFS system and destroyed once you shut                                    down your cluster.</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/7.3/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/7.3/components/hdfs/thdfsconfiguration-properties-for-apache-spark-batch">tHDFSConfiguration Apache Spark Batch</a> or <a href="https://help.qlik.com/talend/r/en-US/7.3/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. |