Jaql - Википедия - Jaql

Jaql
ПарадигмаФункциональный
РазработаноВук Эрджеговач (Google )
Впервые появился9 октября 2008 г.; 12 лет назад (2008-10-09)
Стабильный выпуск
0.5.1 / 12 июля 2010 г.; 10 лет назад (2010-07-12)
Язык реализацииЯва
Операционные системыКроссплатформенность
ЛицензияЛицензия Apache 2.0
Интернет сайткод.Google.com/п/ jaql/ м
Основной реализации
IBM BigInsights

Jaql (произносится «шакал») - это функциональный обработка данных и язык запросов, наиболее часто используемый для JSON обработка запросов по большим данным.

Это началось как проект с открытым исходным кодом в Google.[1] но последний выпуск был 12.07.2010. IBM[2] стал основным языком обработки данных для своих Hadoop пакет программного обеспечения BigInsights.

Хотя был разработан для JSON он поддерживает множество других источников данных, таких как CSV, TSV, XML.

Сравнение[3] на другие языки запросов BigData, например Свинья латынь и Улей QL иллюстрирует аспекты производительности и удобства использования этих технологий.

Jaql поддерживает[4] ленивая оценка, поэтому выражения материализуются только при необходимости.

Синтаксис

Основная концепция Jaql:

источник -> оператор(параметр) -> раковина ;

где сток может быть источником для последующего оператора. Поэтому обычно программа Jaql должна иметь следующую структуру, выражающую график обработки данных:

источник -> оператор1(параметр) -> оператор2(параметр) -> оператор2(параметр) -> оператор3(параметр) -> оператор4(параметр) -> раковина ;

Чаще всего для удобства чтения программы Jaql разделяются на строку после стрелки, что также является распространенной идиомой в Twitter. Ожог:

источник -> оператор1(параметр)-> оператор2(параметр)-> оператор2(параметр)-> оператор3(параметр)-> оператор4(параметр)-> раковина ;

Основные операторы[5]

Расширять

Используйте выражение EXPAND для выравнивания вложенных массивов. Это выражение принимает в качестве входных данных массив вложенных массивов [[T]] и создает выходной массив [T], перемещая элементы каждого вложенного массива в выходной массив верхнего уровня.

Фильтр

Используйте оператор FILTER, чтобы отфильтровать элементы из указанного входного массива. Этот оператор принимает на вход массив элементов типа T и выводит массив того же типа, сохраняя те элементы, для которых предикат оценивается как истина. Это Jaql-эквивалент SQL ГДЕ пункт. Пример:

данные = [  {имя: "Джон Доу", доход: 20000, управляющий делами: ложный},  {имя: "Винс Уэйн", доход: 32500, управляющий делами: ложный},  {имя: "Джейн Дин", доход: 72000, управляющий делами: истинный},  {имя: "Алекс Смит", доход: 25000, управляющий делами: ложный}];данные -> фильтр $.управляющий делами;[  {    "доход": 72000,    "управляющий делами": истинный,    "имя": "Джейн Дин"  }]данные -> фильтр $.доход < 30000;[  {    "доход": 20000,    "управляющий делами": ложный,    "имя": "Джон Доу"  },  {    "доход": 25000,    "управляющий делами": ложный,    "имя": "Алекс Смит"  }]

Группа

Используйте выражение GROUP, чтобы сгруппировать один или несколько входных массивов по ключу группировки и применить агрегатную функцию для каждой группы.

Присоединиться

Используйте оператор JOIN, чтобы выразить соединение между двумя или более входными массивами. Этот оператор поддерживает несколько типов объединений, включая естественные, лево-внешние, правые-внешние и внешние.

Сортировать

Используйте оператор SORT для сортировки ввода по одному или нескольким полям.

Вершина

Выражение TOP выбирает первые k элементов своего ввода. Если предоставляется компаратор, вывод семантически эквивалентен сортировке ввода с последующим выбором первого k элементы.

Преобразовать

Используйте оператор TRANSFORM, чтобы реализовать проекцию или применить функцию ко всем элементам вывода.

Смотрите также

Рекомендации

внешняя ссылка