tExtractRegexFields - 6.1

Talend Open Studio for Big Data Components Reference Guide

EnrichVersion
6.1
EnrichProdName
Talend Open Studio for Big Data
task
Data Governance
Data Quality and Preparation
Design and Development
EnrichPlatform
Talend Studio

Function

tExtractRegexFields generates multiple columns from a given column using regex matching.

Purpose

tExtractRegexFields allows you to use regular expressions to extract data from a formatted string.

tExtractRegexFields properties

Component family

Processing/Fields

 

Basic settings

Field to split

Select an incoming field from the Field to split list to split.

 

Regex

Enter a regular expression according to the programming language you are using.

 

Schema and Edit Schema

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

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.

Warning

Make sure that the output schema does not contain any column with the same name as the input column to be split. Otherwise, the regular expression will not work as expected.

 

 

Built-In: You create and store the schema locally for this component only. Related topic: see Talend Studio User Guide.

 

 

Repository: You have already created the schema and stored it in the Repository. You can reuse it in various projects and Job designs. Related topic: see Talend Studio User Guide.

Advanced settings

Die on error

Select this check box to stop the execution of the Job when an error occurs.

Clear the check box to skip any rows on error and complete the process for error-free rows. When errors are skipped, you can collect the rows on error using a Row > Reject link.

 

Check each row structure against schema

Select this check box to check whether the total number of columns in each row is consistent with the schema. If not consistent, an error message will be displayed on the console.

 

tStatCatcher Statistics

Select this check box to gather the processing metadata at the Job level as well as at each component level.

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 components. It allows you to extract data from a delimited field, using a Row > Main link, and enables you to create a reject flow filtering data which type does not match the defined type.

Log4j

If you are using a subscription-based version of the Studio, the activity of this component can be logged using the log4j feature. For more information on this feature, see Talend Studio User Guide.

For more information on the log4j logging levels, see the Apache documentation at http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html.

Limitation

n/a

Scenario: Extracting name, domain and TLD from e-mail addresses

This scenario describes a three-component Job where tExtractRegexFields is used to specify a regular expression that corresponds to one column in the input data, email. The tExtractRegexFields component is used to perform the actual regular expression matching. This regular expression includes field identifiers for user name, domain name and Top-Level Domain (TLD) name portions in each e-mail address. If the given e-mail address is valid, the name, domain and TLD are extracted and displayed on the console in three separate columns. Data in the other two input columns, id and age is extracted and routed to destination as well.

Setting up the Job

  1. Drop the following components from the Palette onto the design workspace: tFileInputDelimited, tExtractRegexFields, and tLogRow.

  2. Connect tFileInputDelimited to tExtractRegexFields using a Row > Main link, and do the same to connect tExtractRegexFields to tLogRow.

Configuring the components

  1. Double-click the tFileInputDelimited component to open its Basic settings view in the Component tab.

  2. Click the [...] button next to the File name/Stream field to browse to the file where you want to extract information from.

    The input file used in this scenario is called test4. It is a text file that holds three columns: id, email, and age.

    id;email;age
    1;anna@yahoo.net;24
    2;diana@sohu.com;31
    3;fiona@gmail.org;20

    For more information, see tFileInputDelimited.

  3. Click Edit schema to define the data structure of this input file.

  4. Double-click the tExtractRegexFields component to open its Basic settings view.

  5. Select the column to split from the Field to split list: email in this scenario.

  6. Enter the regular expression you want to use to perform data matching in the Regex panel. In this scenario, the regular expression "([a-z]*)@([a-z]*).([a-z]*)" is used to match the three parts of an email address: user name, domain name and TLD name.

    For more information about the regular expression, see http://en.wikipedia.org/wiki/Regular_expression.

  7. Click Edit schema to open the [Schema of tExtractRegexFields] dialog box, and click the plus button to add five columns for the output schema.

    In this scenario, we want to split the input email column into three columns in the output flow, name, domain, and tld. The two other input columns will be extracted as they are.

  8. Double-click the tLogRow component to open its Component view.

  9. In the Mode area, select Table (print values in cells of a table).

Saving and executing the Job

  1. Press Ctrl+S to save your Job.

  2. Execute the Job by pressing F6 or clicking Run on the Run tab.

The tExtractRegexFields component matches all given e-mail addresses with the defined regular expression and extracts the name, domain, and TLD names and displays them on the console in three separate columns. The two other columns, id and age, are extracted as they are.