# tFileOutputXML properties for Apache Spark Batch

These properties are used to configure tFileOutputXML running in the Spark Batch Job framework.

The Spark Batch tFileOutputXML component belongs to the File and the XML families.

The component in this framework is available in all subscription-based Talend products with Big Data and Talend Data Fabric.

## Basic settings

| Properties | Description |
| --- | --- |
| Define a storage configuration<br>component | Select the configuration component to be used to provide the configuration<br>information for the connection to the target file system such as HDFS.<br><br>If you leave this check box clear, the target file system is the local<br>system.<br><br>The configuration component to be used must be present in the same Job.<br>For example, if you have dropped a tHDFSConfiguration component in the Job, you can select it to write<br>the result in a given HDFS system. |
| Property type | <ul> <li> <p>Either <span>Built-In</span> or <span>Repository</span>. </p> </li> <li> <p> <span>Built-In</span>: No property data stored centrally.</p> </li> <li> <p> <span>Repository</span>: Select the repository file where the            properties are stored.</p> <p>The properties are stored centrally under the <span>Hadoop                Cluster</span> node of the <span>Repository</span>            tree.</p> <p>The fields that come after are pre-filled in using the fetched                            data.</p> <p>For more information about the <span>Hadoop            Cluster</span> node, see <a href="https://help.qlik.com/talend/r/en-US/8.0/studio-user-guide/managing-hadoop-metadata" target="_blank">Managing Hadoop connection metadata</a>.</p> </li> </ul> |
| ![](https://help.qlik.com/talend/en-US/components/8.0/Resources/images/Save_Icon.png) | Click this icon to open a database connection wizard and store the<br>database connection parameters you set in the component Basic<br>settings view.<br><br>For more information about setting up and storing database connection<br>parameters, see [Centralizing database metadata](https://help.qlik.com/talend/r/en-US/8.0/studio-user-guide/centralizing-database-metadata). |
| Row tag | Specify the tag that will wrap data and structure per row. |
| Schema and Edit<br>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> </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> |
| Folder | Browse to, or enter the path pointing to the data to be used in the file system.<br><br>This path must point to a folder rather than a file.<br><br>The button for browsing does not work with the Spark Local mode; if you are using the other Spark Yarn modes that Talend Studio<br>supports with your distribution, ensure that you have properly configured the connection<br>in a configuration component in the same Job. Use the configuration component depending<br>on the filesystem to be used. |
| Action | Select an operation for writing data:<br><br><br>Create: Creates a file and write data<br>in it.<br><br><br>Overwrite: Overwrites the file<br>existing in the directory specified in the Folder field.<br><br>When you want to sort the rows, row order is not guaranteed with this<br>component. |
| Compress the data | Select the Compress the data check box to compress the<br>output data. |

## Advanced settings

| Properties | Description |
| --- | --- |
| Root tags | Specify one or more root tags to wrap the whole output file structure and data. The<br>default root tag is *root*. |
| 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. |
| Custom encoding | 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 separator (for numbers) | Select this check box to modify the separators used for<br>numbers:<br><br><br>Thousands separator: define<br>separators for thousands.<br><br><br>Decimal separator: define<br>separators for decimals. |
| Use local timezone for date | Select this check box to use the local date of the machine in which your Job is executed. If leaving this check box clear, UTC is automatically used to format the Date-type data. |

## Usage

| Usage guidance | Description |
| --- | --- |
| **Usage rule** | This component is used as an end component and requires an input link.<br><br>This component, along with the Spark Batch component Palette it belongs to,<br>appears only when you are creating a Spark Batch Job.<br><br>Note that in this documentation, unless otherwise explicitly stated, a<br>scenario presents only Standard Jobs, that is to<br>say traditional<br>Talend<br>data 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> <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. |