Content deleted Content added
removed Category:Big Data; added Category:Big data using HotCat |
No edit summary |
||
Line 2:
| name = ECL
| developer = [[HPCC|HPCC Systems]], LexisNexis Risk Solutions
| logo =
| paradigm = [[declarative programming|declarative]], [[structured]], [[Data-centric programming language|data-centric]]
Line 12 ⟶ 11:
| latest release date =
| influenced_by = [[Prolog]], [[Pascal (programming language)|Pascal]], [[SQL]], [[Snobol4]], [[C++]], [[Clarion (programming language)|Clarion]]
| influenced =
| operating_system = [[Linux]]
| license =
| website = http://hpccsystems.com/
}}
Line 27 ⟶ 26:
=== Hello world ===
ECL is to have succinct solutions to problems and sensible defaults. The
"Hello World".
Perhaps a more flavorful example would take a list of strings, sort them into order, and then return that as a result instead.
<
// First declare a dataset with one column containing a list of strings
// Datasets can also be binary,
D := DATASET([{'ECL'},{'Declarative'},{'Data'},{'Centric'},{'Programming'},{'Language'}],{STRING Value;});
SD := SORT(D,Value);
output(SD)
</
The statements containing a <code>:=</code> are defined in ECL as attribute definitions. They do not denote an action; rather a definition of a term. Thus, logically, an ECL program can be read:
OUTPUT(SD)
Line 56 ⟶ 55:
D is a dataset with one column labeled ‘Value’ and containing the following list of data.
=== ECL
ECL primitives that act upon datasets include: SORT, ROLLUP, DEDUP, ITERATE, PROJECT, JOIN, NORMALIZE, DENORMALIZE, PARSE, CHOSEN, ENTH, TOPN, DISTRIBUTE
=== ECL
Whilst ECL is terse and LexisNexis claims that 1 line of ECL is roughly equivalent to 120 lines of C++ it still has significant support for large scale programming including data encapsulation and code re-use. The constructs available include: MODULE, FUNCTION, INTERFACE, MACRO, EXPORT, SHARED
Line 67 ⟶ 66:
=== Comparison to Map-Reduce ===
The Hadoop Map-Reduce paradigm actually consists of three phases which correlate to ECL primitives as follows.
{| class="wikitable
|-
! Hadoop Name/Term
Line 73 ⟶ 72:
! Comments
|-
|-
|-
|-
|}
|