Jump to content

Жакль

Жакль
Парадигма Функциональный
Разработано Вук Эрцеговац ( Google )
Впервые появился 9 октября 2008 г .; 15 лет назад ( 09.10.2008 )
Стабильная версия
0.5.1 / 12 июля 2010 г .; 14 лет назад ( 12.07.2010 )
Язык реализации Ява
ТЫ Кросс-платформенный
Лицензия Лицензия Апач 2.0
Веб-сайт код .Google /п / Джакл
Основные реализации
IBM БигИнсайтс

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

Все началось как проект с открытым исходным кодом в Google. [1] но последний выпуск был 12 июля 2010 г. ИБМ [2] взяла его в качестве основного языка обработки данных для своего Hadoop программного пакета BigInsights .

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

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

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

Синтаксис

[ редактировать ]

Основная концепция Jaql заключается в

source -> operator(parameter) -> sink ;

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

source -> operator1(parameter) -> operator2(parameter) -> operator2(parameter) -> operator3(parameter) -> operator4(parameter) -> sink ;

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

source -> operator1(parameter)
-> operator2(parameter)
-> operator2(parameter)
-> operator3(parameter)
-> operator4(parameter)
-> sink ;

Основные операторы

[ редактировать ]

Источник: [5]

Расширять

[ редактировать ]

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

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

data = [
  {name: "Jon Doe", income: 20000, manager: false},
  {name: "Vince Wayne", income: 32500, manager: false},
  {name: "Jane Dean", income: 72000, manager: true},
  {name: "Alex Smith", income: 25000, manager: false}
];

data -> filter $.manager;

[
  {
    "income": 72000,
    "manager": true,
    "name": "Jane Dean"
  }
]

data -> filter $.income < 30000;

[
  {
    "income": 20000,
    "manager": false,
    "name": "Jon Doe"
  },
  {
    "income": 25000,
    "manager": false,
    "name": "Alex Smith"
  }
]

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

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

[ редактировать ]

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

Сортировать

[ редактировать ]

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

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

Трансформировать

[ редактировать ]

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

См. также

[ редактировать ]
  1. ^ Оригинальный проект Jaql
  2. ^ Первоначальная публикация
  3. ^ Стюарт, Роберт Дж.; Триндер, Фил В.; Лойдл, Ханс-Вольфганг (2011). «Сравнение языков запросов высокого уровня MapReduce» . Передовые технологии параллельной обработки . Конспекты лекций по информатике. Том. 6965. стр. 58–72. дои : 10.1007/978-3-642-24151-2_5 . ISBN  978-3-642-24150-5 .
  4. ^ JAQL в Hadoop, краткое введение
  5. ^ Документация IBM BigInsights
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 727d74c4de41e33a5b3d1f7003f6028c__1721378400
URL1:https://arc.ask3.ru/arc/aa/72/8c/727d74c4de41e33a5b3d1f7003f6028c.html
Заголовок, (Title) документа по адресу, URL1:
Jaql - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)