Newer Version Available

This content describes an older version of this product. View Latest

Statements

A SAQL query loads input data, operates on it, and outputs the result data. A query is made up of statements. Each SAQL statement has an input stream, an operation, and an output stream.
A statement is made up of keywords (such as filter, group, and order), identifiers, literals, and special characters. Statements can span multiple lines and must end with a semicolon.

Assign each query line to an identifier called a stream. The only exception is the last line in a query, which doesn't have to be assigned explicitly.

The output stream is on the left side of the = operator and the input stream is on the right side of the = operator.

Example

Each of the lines in this SAQL query is a SAQL statement:
1q = load "Dataset1";
2q = group q by all;
3q = foreach q generate sum('Amount') as 'sum_Amount';

You can chain SAQL statements together to operate on data sequentially. The order of SAQL statements is enforced according to how the operations in the statements change the results of a query.

The statement order rules:
  • The order of filter and order can be swapped because it doesn't change the results.
  • offset must be after filter and order
  • offset must be before limit
  • There can be no more than 1 offset statement after a foreach statement.

SAQL is influenced by the Pig Latin programming language, but their implementations differ and they aren’t compatible.

Tip