Size: a a a

Язык программирования Julia / Julia programming language

2021 June 10

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Понятно, что можно сделать join, а потом сгруппировать, но это выглядит как довольно дорогая операция с точки зрения памяти/скорости выполнения.

Есть ли какой-нибудь способ превратить их во вложенную структуру во время join?
источник

A

Alexandr in Язык программирования Julia / Julia programming language
Скорее сначала сгруппировать, а потом сделать join
источник

A

Alexandr in Язык программирования Julia / Julia programming language
Если императивно ( 🙂 ) то я бы по второй таблице руками сделал словарь id - > Vector{NamedTuple} и потом их этого словаря добавил колонку к 1й таблице
источник

A

Alexandr in Язык программирования Julia / Julia programming language
Либо то же самое с сортировкой попробовал сделать - тут зависит от объема данных
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Ну, сделать словарь и добавить - это вроде бы и есть один из вариантов как join организован.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
А join из SplitApplyCombine не сможет этого сделать самостоятельно?
источник

A

Alexandr in Язык программирования Julia / Julia programming language
ага. Как я понимаю их глобально 2 вида - один через сортировку, другой через словарь
источник

A

Alexandr in Язык программирования Julia / Julia programming language
Может скорее всего. Но вот видимо это как раз и есть та разница между декларативным и императивным подходом, которую мы искали 🙂 Декларативно join из SplitApplyCombine это безусловно сделает, но если есть заморочка по эффективности, памяти и т.д. то имеет смысл делать это императивно самому. ИМХО конечно и сильно зависит от задачи. Если прям очень надо выжать производительность, то я бы делал руками
источник

A

Alexandr in Язык программирования Julia / Julia programming language
Но в любом случае я бы сначала группировал вторую таблицу по id, а потом джойнил
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
в SAC есть leftgroupjoin()
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
как раз эту операцию делает, если задачу правильно понял
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
О, здорово, надо будет посмотреть.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Кстати, вчера обсуждали tkf, а сегодня он аж двумя статьями разразился.

Для тех кто любит математику, теорию групп, моноиды и вот это вот всё: https://juliafolds.github.io/data-parallelism/explanation/semidirect-products/
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Различные паттерны используемые в параллельных вычислениях (в исполнении Julia)

https://juliafolds.github.io/data-parallelism/tutorials/concurrency-patterns/
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Вторая статья правда для меня тяжело зашла, манера изложения какая-то слишком сложная для восприятия.
источник

ЕП

Евгений Погребняк... in Язык программирования Julia / Julia programming language
Меня тоже вопрос интересует - все вроде понимают, рад, что подняли (и осветили) воппос.
источник

AL

Anatoly Levenchuk in Язык программирования Julia / Julia programming language
Вот мы и дожили до этого радостного момента: Parallelized symbolic regression built on Julia, and interfaced by Python. Uses regularized evolution, simulated annealing, and gradient-free optimization — https://github.com/MilesCranmer/PySR

Это в поддержку восхитительной работы https://github.com/MilesCranmer/symbolic_deep_learning (статья к коду https://arxiv.org/abs/2006.11287).

А вот что они переписали на Julia: https://github.com/datarobot-community/symbolic-regression-python (фирма-разработчик алгоритма Nutonian была затем съедена фирмой DataRobot, и тогда народ переписал код алгоритма символьной регрессии Eureqa в опенсорс на Julia, заодно параллелизовав его, а интерфейс оставил на Питоне, "как было").

Итого: уже есть примеры, когда код пишут на Julia, а для внешнего мира притворяются Питоном.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Это очень круто конечно!
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Надо больше таких примеров :-)
источник

SG

Serg Gini in Язык программирования Julia / Julia programming language
Классный пример)
источник