Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2019-04-26

Spark.ml.Transformer Spatial Join

Как некоторые могут догадаться, по работе я довольно плотно связан с гео-аналитикой и пространственными данными. Тема интересная, хотя, наверное, не настолько как бухгалтерия.


На днях выродился очередной побочный продукт упражнений с гео-бигдатой: так называемый spark.ml.transformer, задача которого участвовать в пайплайнах (ml.pipeline) обработки данных.
Называется трансформер BroadcastSpatialJoin и, очевидно, он умеет в join входного датасета с заданным внешним датасетом по пространственным отношениям между их элементами.

Как лицо благодарное (сообществу проектов с открытым кодом) и ответственное, трансформер я оформил как открытый проект:

Кому надо, тот разберется.

Базовый механизм джойна позаимствован (и изрядно переработан) из другого проекта:

Как оказалось, всякие другие GeoSpark-и, Magellan-ы и прочие GeoMesa-ы для наших задач были оверкиллом и/или требовали слишком много работы крупным напильником.




Вы прослушали передачу на тему "какой я за?пательский программист".
Всем спасибо, все свободны.



original post https://vasnake.blogspot.com/2019/04/sparkmltransformer-spatial-join.html

2019-04-01

Scala for the impatient

Перфекционизм -- страшная штука. Даже той небольшой доли, что есть у меня, достаточно для того, чтобы отжирать какое-то безумное количество времени.

Вот, к примеру, букварь: Scala for The Impatient (второе издание).


Прочитать книгу и разобраться в концепциях можно за неделю. Второе издание я читал в дороге из-дома-на-работу и обратно несколько месяцев. Пять дней в неделю, час в день, полсотни часов или около того. Но в процессе чтения меня не покидало желание не просто запомнить всякое, но проштудировать тщательно и сделать конспект, прорешать упражнения.

Первая попытка штудирования и конспектирования закончилась в состоянии заброшенки на полпути -- хроническая нехватка времени, я не умею делать вещи, требующие концентрации, в стиле "по полчаса в день". Мне полчаса надо только чтобы сконцентрироваться, еще полчаса на то, чтобы вспомнить, на чем я остановился в прошлый раз.

Второй подход к снаряду получился гораздо продуктивнее: будучи в отпуске, я смог выделять по нескольку часов в день на задачу. В результате, через какой-то месяц плотного штудирования букваря, я наклепал подробный конспект и прорешал все задачки:

https://github.com/vasnake/scala-for-the-impatient
21 глава, по 500..800 строк кода на каждую, получился неслабый такой проект среднего размера.

Что характерно, метрика "200 отлаженных строк кода в день" по прежнему состоятельна. В среднем, за день удается наваять как раз около 200 строк.

В общем, если кто не понял, я, в некотором роде хвастаюсь: у меня есть еще один проект, доведенный до победного конца. Ура, товарищи.

P.S.
Страшно подумать, сколько времени занимает написание такого букваря.
Кстати, несмотря на уже второе издание, в книге овердохуа опечаток и неточностей. Некоторый код никто не проверял в работе.

P.P.S
Интересные заметки про нашего мальчика:
https://community.oracle.com/people/cayhorstmann-3071947/content?customTheme=otn




original post https://vasnake.blogspot.com/2019/04/scala-for-impatient.html

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) Java (22) humor (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) Klaipeda (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) купи/продай (9) Photo (8) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)