{"action":"closed","number":45,"pull_request":{"url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/pulls/45","id":78884079,"html_url":"https://github.com/PixelsCamp/pixels_camp_2016_talks/pull/45","diff_url":"https://github.com/PixelsCamp/pixels_camp_2016_talks/pull/45.diff","patch_url":"https://github.com/PixelsCamp/pixels_camp_2016_talks/pull/45.patch","issue_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/issues/45","number":45,"state":"closed","locked":false,"title":"Making Data Science Fast and Scalable with Apache Spark","user":{"login":"nmldiegues","id":889015,"avatar_url":"https://avatars.githubusercontent.com/u/889015?v=3","gravatar_id":"","url":"https://api.github.com/users/nmldiegues","html_url":"https://github.com/nmldiegues","followers_url":"https://api.github.com/users/nmldiegues/followers","following_url":"https://api.github.com/users/nmldiegues/following{/other_user}","gists_url":"https://api.github.com/users/nmldiegues/gists{/gist_id}","starred_url":"https://api.github.com/users/nmldiegues/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nmldiegues/subscriptions","organizations_url":"https://api.github.com/users/nmldiegues/orgs","repos_url":"https://api.github.com/users/nmldiegues/repos","events_url":"https://api.github.com/users/nmldiegues/events{/privacy}","received_events_url":"https://api.github.com/users/nmldiegues/received_events","type":"User","site_admin":false},"body":"Making Data Science Fast and Scalable with Apache Spark\r\n========================\r\n\r\n* Speaker   : Nuno Diegues\r\n* Available : Any time\r\n* Length    : 30 mins\r\n* Language  : English\r\n\r\nDescription\r\n-----------\r\n\r\nMost businesses are now dealing with a large stream of incoming data, leading them to the challenge of coping with an ever growing scale, while at the same time seeking to obtain insights about it as fast as possible. Apache Spark is turning out to be a de facto solution to tackle that challenge: at its core lies a distributed, fault-tolerant computing system, that allows to express many types of computations (map-reduce, data mining, machine learning, streaming, ...) via its various APIs.\r\nAt Feedzai we face exactly that challenge, as we process large amounts of data to enable our Machine Learning systems, and automatically prevent fraud across transactions amounting to billions of euros.\r\nIn this talk we will tell you all about our Spark deployment and how we use it to empower our Data Science pipelines to extract meaning from the large amounts of streaming data arriving to our systems. We will talk about our use of Spark low level APIs, which we use to dynamically generate Spark programs on-the-fly that scale to process large amounts of data in parallel. While doing so, we will delve into some challenges of doing so, such as: correctly partitioning the work, optimizing Spark shuffles, reducing the serialization costs, deploying it to large clusters, and all other difficulties you would face when putting Spark to use with high performance requirements.\r\n\r\n\r\nSpeaker Bio\r\n-----------\r\nI am a Software Engineer at Feedzai, working with both real-time systems to process data really fast and help our clients detect patterns in it (say, fraud detection), as well as processing large amounts of data in off-line jobs for Data Science pipelines. Of course this means working with lots of interesting technology and getting various types of distributed systems work in practice.\r\nBefore this, I obtained a Ph.D. degree from Instituto Superior Tecnico (hopefully this will be official by October!), working also with distributed systems and making them faster, yet simpler to use.\r\n\r\n\r\n\r\nLinks\r\n-----\r\n\r\n* Site: http://www.nunodiegues.com/\r\n* Company: http://www.feedzai.com\r\n* Github: http://github.com/nmldiegues","created_at":"2016-07-26T16:33:54Z","updated_at":"2016-08-22T23:40:26Z","closed_at":"2016-08-22T23:40:26Z","merged_at":"2016-08-22T23:40:26Z","merge_commit_sha":"7041096ec121cda049b890c1246c00556279b61e","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/pulls/45/commits","review_comments_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/pulls/45/comments","review_comment_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/pulls/comments{/number}","comments_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/issues/45/comments","statuses_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/statuses/c0c4d7225a47a5cbbe13cdf716164891ff90c3b9","head":{"label":"nmldiegues:master","ref":"master","sha":"c0c4d7225a47a5cbbe13cdf716164891ff90c3b9","user":{"login":"nmldiegues","id":889015,"avatar_url":"https://avatars.githubusercontent.com/u/889015?v=3","gravatar_id":"","url":"https://api.github.com/users/nmldiegues","html_url":"https://github.com/nmldiegues","followers_url":"https://api.github.com/users/nmldiegues/followers","following_url":"https://api.github.com/users/nmldiegues/following{/other_user}","gists_url":"https://api.github.com/users/nmldiegues/gists{/gist_id}","starred_url":"https://api.github.com/users/nmldiegues/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nmldiegues/subscriptions","organizations_url":"https://api.github.com/users/nmldiegues/orgs","repos_url":"https://api.github.com/users/nmldiegues/repos","events_url":"https://api.github.com/users/nmldiegues/events{/privacy}","received_events_url":"https://api.github.com/users/nmldiegues/received_events","type":"User","site_admin":false},"repo":{"id":64234475,"name":"pixels_camp_2016_talks","full_name":"nmldiegues/pixels_camp_2016_talks","owner":{"login":"nmldiegues","id":889015,"avatar_url":"https://avatars.githubusercontent.com/u/889015?v=3","gravatar_id":"","url":"https://api.github.com/users/nmldiegues","html_url":"https://github.com/nmldiegues","followers_url":"https://api.github.com/users/nmldiegues/followers","following_url":"https://api.github.com/users/nmldiegues/following{/other_user}","gists_url":"https://api.github.com/users/nmldiegues/gists{/gist_id}","starred_url":"https://api.github.com/users/nmldiegues/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nmldiegues/subscriptions","organizations_url":"https://api.github.com/users/nmldiegues/orgs","repos_url":"https://api.github.com/users/nmldiegues/repos","events_url":"https://api.github.com/users/nmldiegues/events{/privacy}","received_events_url":"https://api.github.com/users/nmldiegues/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/nmldiegues/pixels_camp_2016_talks","description":"Talks","fork":true,"url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks","forks_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/forks","keys_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/teams","hooks_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/hooks","issue_events_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/issues/events{/number}","events_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/events","assignees_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/assignees{/user}","branches_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/branches{/branch}","tags_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/tags","blobs_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/git/refs{/sha}","trees_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/statuses/{sha}","languages_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/languages","stargazers_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/stargazers","contributors_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/contributors","subscribers_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/subscribers","subscription_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/subscription","commits_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/commits{/sha}","git_commits_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/git/commits{/sha}","comments_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/comments{/number}","issue_comment_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/issues/comments{/number}","contents_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/contents/{+path}","compare_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/merges","archive_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/downloads","issues_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/issues{/number}","pulls_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/pulls{/number}","milestones_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/milestones{/number}","notifications_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/labels{/name}","releases_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/releases{/id}","deployments_url":"https://api.github.com/repos/nmldiegues/pixels_camp_2016_talks/deployments","created_at":"2016-07-26T15:52:33Z","updated_at":"2016-07-22T23:04:54Z","pushed_at":"2016-07-26T16:32:36Z","git_url":"git://github.com/nmldiegues/pixels_camp_2016_talks.git","ssh_url":"git@github.com:nmldiegues/pixels_camp_2016_talks.git","clone_url":"https://github.com/nmldiegues/pixels_camp_2016_talks.git","svn_url":"https://github.com/nmldiegues/pixels_camp_2016_talks","homepage":null,"size":11,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"PixelsCamp:master","ref":"master","sha":"d1c0555431a4e05788d3c31f676876af88e93065","user":{"login":"PixelsCamp","id":17933953,"avatar_url":"https://avatars.githubusercontent.com/u/17933953?v=3","gravatar_id":"","url":"https://api.github.com/users/PixelsCamp","html_url":"https://github.com/PixelsCamp","followers_url":"https://api.github.com/users/PixelsCamp/followers","following_url":"https://api.github.com/users/PixelsCamp/following{/other_user}","gists_url":"https://api.github.com/users/PixelsCamp/gists{/gist_id}","starred_url":"https://api.github.com/users/PixelsCamp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PixelsCamp/subscriptions","organizations_url":"https://api.github.com/users/PixelsCamp/orgs","repos_url":"https://api.github.com/users/PixelsCamp/repos","events_url":"https://api.github.com/users/PixelsCamp/events{/privacy}","received_events_url":"https://api.github.com/users/PixelsCamp/received_events","type":"Organization","site_admin":false},"repo":{"id":55771470,"name":"pixels_camp_2016_talks","full_name":"PixelsCamp/pixels_camp_2016_talks","owner":{"login":"PixelsCamp","id":17933953,"avatar_url":"https://avatars.githubusercontent.com/u/17933953?v=3","gravatar_id":"","url":"https://api.github.com/users/PixelsCamp","html_url":"https://github.com/PixelsCamp","followers_url":"https://api.github.com/users/PixelsCamp/followers","following_url":"https://api.github.com/users/PixelsCamp/following{/other_user}","gists_url":"https://api.github.com/users/PixelsCamp/gists{/gist_id}","starred_url":"https://api.github.com/users/PixelsCamp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PixelsCamp/subscriptions","organizations_url":"https://api.github.com/users/PixelsCamp/orgs","repos_url":"https://api.github.com/users/PixelsCamp/repos","events_url":"https://api.github.com/users/PixelsCamp/events{/privacy}","received_events_url":"https://api.github.com/users/PixelsCamp/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/PixelsCamp/pixels_camp_2016_talks","description":"Talks","fork":false,"url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks","forks_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/forks","keys_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/teams","hooks_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/hooks","issue_events_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/issues/events{/number}","events_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/events","assignees_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/assignees{/user}","branches_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/branches{/branch}","tags_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/tags","blobs_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/git/refs{/sha}","trees_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/statuses/{sha}","languages_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/languages","stargazers_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/stargazers","contributors_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/contributors","subscribers_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/subscribers","subscription_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/subscription","commits_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/commits{/sha}","git_commits_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/git/commits{/sha}","comments_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/comments{/number}","issue_comment_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/issues/comments{/number}","contents_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/contents/{+path}","compare_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/merges","archive_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/downloads","issues_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/issues{/number}","pulls_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/pulls{/number}","milestones_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/milestones{/number}","notifications_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/labels{/name}","releases_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/releases{/id}","deployments_url":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/deployments","created_at":"2016-04-08T10:40:18Z","updated_at":"2016-08-22T13:36:12Z","pushed_at":"2016-08-22T23:40:26Z","git_url":"git://github.com/PixelsCamp/pixels_camp_2016_talks.git","ssh_url":"git@github.com:PixelsCamp/pixels_camp_2016_talks.git","clone_url":"https://github.com/PixelsCamp/pixels_camp_2016_talks.git","svn_url":"https://github.com/PixelsCamp/pixels_camp_2016_talks","homepage":null,"size":50,"stargazers_count":53,"watchers_count":53,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":77,"mirror_url":null,"open_issues_count":66,"forks":77,"open_issues":66,"watchers":53,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/pulls/45"},"html":{"href":"https://github.com/PixelsCamp/pixels_camp_2016_talks/pull/45"},"issue":{"href":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/issues/45"},"comments":{"href":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/issues/45/comments"},"review_comments":{"href":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/pulls/45/comments"},"review_comment":{"href":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/pulls/45/commits"},"statuses":{"href":"https://api.github.com/repos/PixelsCamp/pixels_camp_2016_talks/statuses/c0c4d7225a47a5cbbe13cdf716164891ff90c3b9"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"celso","id":14289,"avatar_url":"https://avatars.githubusercontent.com/u/14289?v=3","gravatar_id":"","url":"https://api.github.com/users/celso","html_url":"https://github.com/celso","followers_url":"https://api.github.com/users/celso/followers","following_url":"https://api.github.com/users/celso/following{/other_user}","gists_url":"https://api.github.com/users/celso/gists{/gist_id}","starred_url":"https://api.github.com/users/celso/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/celso/subscriptions","organizations_url":"https://api.github.com/users/celso/orgs","repos_url":"https://api.github.com/users/celso/repos","events_url":"https://api.github.com/users/celso/events{/privacy}","received_events_url":"https://api.github.com/users/celso/received_events","type":"User","site_admin":false},"comments":0,"review_comments":0,"commits":1,"additions":29,"deletions":0,"changed_files":1}}
{"actor":{"display_login":"celso"}}