August 17, 2023

tSortRow – Docs for ESB 5.x

tSortRow

tSortRow.png

tSortRow properties

Component family

Processing

 

Function

Sorts input data based on one or several columns, by sort type and
order

Purpose

Helps creating metrics and classification table.

Basic settings

Schema and Edit
Schema

A schema is a row description, it defines the number of fields to be processed and
passed on to the next component. The schema is either Built-in or stored remotely in the
Repository.

Since version 5.6, both the Built-In mode and the Repository mode are
available in any of the Talend solutions.

Click Edit schema to make changes to the schema. If the
current schema is of the Repository type, three options are
available:

  • View schema: choose this option to view the
    schema only.

  • Change to built-in property: choose this option
    to change the schema to Built-in for local
    changes.

  • Update repository connection: choose this option to change
    the schema stored in the repository and decide whether to propagate the changes to
    all the Jobs upon completion. If you just want to propagate the changes to the
    current Job, you can select No upon completion and
    choose this schema metadata again in the [Repository
    Content]
    window.

Click Sync columns to retrieve
the schema from the previous component connected in the Job.

This component offers the advantage of the dynamic schema feature. This allows you to
retrieve unknown columns from source files or to copy batches of columns from a source
without mapping each column individually. For further information about dynamic schemas,
see Talend Studio
User Guide.

This dynamic schema feature is designed for the purpose of retrieving unknown columns
of a table and is recommended to be used for this purpose only; it is not recommended
for the use of creating tables.

 

 

Built-in: The schema will be
created and stored locally for this component only. Related topic:
see Talend Studio User
Guide
.

 

 

Repository: The schema already
exists and is stored in the Repository, hence can be reused in
various projects and Job flowcharts. Related topic: see Talend Studio User
Guide
.

 

Criteria

Click + to add as many lines as required for the sort to be
complete. By default the first column defined in your schema is
selected.

 

 

Schema column: Select the column
label from your schema, which the sort will be based on. Note that
the order is essential as it determines the sorting priority.

 

 

Sort type: Numerical and
Alphabetical order are proposed. More sorting types to come.

 

 

Order: Ascending or descending
order.

Advanced settings

Sort on disk

Note

Not available for the Map/Reduce version of this
component.

Customize the memory used to temporarily store output data.

Temp data directory path: Set the
location where the temporary files should be stored.

Create temp data directory if not
exists
: Select this check box to create the directory
if it does not exist.

Buffer size of external sort: Type
in the size of physical memory you want to allocate to sort
processing.

 

tStatCatcher Statistics

Select this check box to gather the Job processing metadata at the
Job level as well as at each component level. Note that this check box is not available in
the Map/Reduce version of the component.

Global Variables

ERROR_MESSAGE: the error message generated by the
component when an error occurs. This is an After variable and it returns a string. This
variable functions only if the Die on error check box is
cleared, if the component has this check box.

A Flow variable functions during the execution of a component while an After variable
functions after the execution of the component.

To fill up a field or expression with a variable, press Ctrl +
Space
to access the variable list and choose the variable to use from it.

For further information about variables, see Talend Studio
User Guide.

Usage

This component handles flow of data therefore it requires input
and output, hence is defined as an intermediary step.

Usage in Map/Reduce Jobs

If you have subscribed to one of the Talend solutions with Big Data, you can also
use this component as a Map/Reduce component. In a Talend Map/Reduce Job, this
component is used as an intermediate step and other components used along with it must be
Map/Reduce components, too. They generate native Map/Reduce code that can be executed
directly in Hadoop.

For further information about a Talend Map/Reduce Job, see the sections
describing how to create, convert and configure a Talend Map/Reduce Job of the
Talend Big Data Getting Started Guide.

For a scenario demonstrate a Map/Reduce Job using this component,
see Scenario 2: Deduplicating entries using Map/Reduce components.

Note that in this documentation, unless otherwise explicitly stated, a scenario presents
only Standard Jobs, that is to say traditional Talend data
integration Jobs, and non Map/Reduce Jobs.

Limitation

n/a

Scenario 1: Sorting entries

This scenario describes a three-component Job. A tRowGenerator is used to create random entries which are directly sent
to a tSortRow to be ordered following a defined value
entry. In this scenario, we suppose the input flow contains names of salespersons along
with their respective sales and their years of presence in the company. The result of
the sorting operation is displayed on the Run
console.

Use_Case_tSortRow1.png
  • Drop the three components required for this use case: tRowGenerator, tSortRow and
    tLogRow from the Palette to the design workspace.

  • Connect them together using Row
    main links.

  • On the tRowGenerator editor, define the
    values to be randomly used in the Sort component. For more information regarding
    the use of this particular component, see tRowGenerator

Use_Case_tSortRow2.png
  • In this scenario, we want to rank each salesperson according to its
    Sales value and to its number of years in the
    company.

  • Double-click tSortRow to display the
    Basic settings tab panel. Set the sort
    priority on the Sales value and as secondary criteria, set the number of years
    in the company.

Use_Case_tSortRow3.png
  • Use the plus button to add the number of rows required. Set the type of
    sorting, in this case, both criteria being integer, the sort is numerical. At
    last, given that the output wanted is a rank classification, set the order as
    descending.

  • Display the Advanced Settings tab and select
    the Sort on disk check box to modify the
    temporary memory parameters. In the Temp data directory
    path
    field, type the path to the directory where you want to
    store the temporary data. In the Buffer size of external
    sort
    field, set the maximum buffer value you want to allocate to
    the processing.

Warning

The default buffer value is 1000000 but the more rows and/or columns you
process, the higher the value needs to be to prevent the Job from automatically
stopping. In that event, an “out of memory” error message displays.

  • Make sure you connected this flow to the output component, tLogRow, to display the result in the Job
    console.

  • Press F6 to run the Job. The ranking is based
    first on the Sales value and then on the number of years of experience.

Use_Case_tSortRow4.png

Scenario 2: Sorting entries based on dynamic schema

In this scenario we will sort entries in an input file based on a dynamic schema,
display the sorting result on the Run console, and save
the sorting result in an output file. For more information about the dynamic schema
feature, see Talend Studio User
Guide
.

Use_Case_tSortRow5.png
  • Drop the components required for this use case: tFileInputDelimited, tSortRow,
    tLogRow and tFileOutputDelimited from the Palette to the design workspace.

  • Connect these components together using Row
    > Main links.

  • Double-click the tFileInputDelimited
    component to display its Basic settings view.

Use_Case_tSortRow6.png

Warning

The dynamic schema feature is only supported in Built-In mode and requires the input file to have a
header row.

  • Select Built-In from the Property Type list.

  • Click the […] button next to the File Name field to browse to your input file. In this
    use case, the input file cars.csv has five columns:
    ID_Owner, Registration,
    Make, Color, and
    ID_Reseller.

  • Specify the header row in Header field. In
    this use case the first row is the header row.

  • Select Built-In from the Schema list, and click Edit
    schema
    to set the input schema.

Use_Case_tSortRow7.png

Warning

The dynamic column must be defined in the last row of the
schema.

  • In the schema editor, add two columns and name them
    ID_Owner and Other respectively.
    Set the data type of the Other column to Dynamic to retrieve all the columns undefined in the
    schema.

  • Click OK to propagate the schema and close
    the schema editor.

  • Double-click tSortRow to display the
    Basic settings view.

Use_Case_tSortRow8.png
  • Add a row in the Criteria table by clicking
    the plus button, select Other under Schema column, select alpha as the sorting
    type, and select the ascending or
    descending order for data output.

Warning

Dynamic column sorting works only when the sorting type is
set to alpha.

  • To view the output in the form of a table on the Run console, double-click the tLogRow component and select the Table option in the Basic
    settings
    view.

  • Double-click the tFileOutputDelimited
    component to display its Basic Settings
    view.

Use_Case_tSortRow9.png
  • Click the […] button next to the File Name field to browse to the directory where you
    want to save the output file, and then enter a name for the file.

  • Select the Include Header check box to
    retrieve the column names as well as the sorted data.

  • Save your Job and press F6 to run it.

    The sorting result is displayed on the Run
    console and written into the output file.

Use_Case_tSortRow11.png

Document get from Talend https://help.talend.com
Thank you for watching.
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x