├── .gitignore ├── README.md ├── base ├── Dockerfile ├── README.md ├── bde-spark.css ├── execute-step.sh ├── finish-step.sh └── wait-for-step.sh ├── codes └── python │ ├── 1.-initial │ └── python.py │ ├── 2- Transformations │ ├── Transformations.ipynb │ └── transformations.py │ ├── example │ ├── data.csv │ └── example.py │ └── files │ ├── deporte.csv │ ├── deportista.csv │ ├── deportista2.csv │ ├── deportistaError.csv │ ├── evento.csv │ ├── juegos.csv │ ├── modelo_relacional.jpg │ ├── paises.csv │ └── resultados.csv ├── docker-compose.yml ├── k8s-spark-cluster.yaml ├── master ├── Dockerfile ├── README.md └── master.sh ├── requirements.txt ├── submit ├── Dockerfile ├── README.md └── submit.sh ├── template ├── java │ ├── Dockerfile │ ├── README.md │ └── template.sh ├── python │ ├── Dockerfile │ ├── README.md │ └── template.sh └── scala │ ├── Dockerfile │ ├── README.md │ ├── build.sbt │ ├── plugins.sbt │ └── template.sh └── worker ├── Dockerfile ├── README.md └── worker.sh /.gitignore: -------------------------------------------------------------------------------- 1 | # File created using '.gitignore Generator' for Visual Studio Code: https://bit.ly/vscode-gig 2 | 3 | # Created by https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,jetbrains,jetbrains+all,jetbrains+iml,python,visualstudio 4 | # Edit at https://www.toptal.com/developers/gitignore?templates=windows,visualstudiocode,jetbrains,jetbrains+all,jetbrains+iml,python,visualstudio 5 | 6 | ### JetBrains ### 7 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider 8 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 9 | 10 | # User-specific stuff 11 | .idea/**/workspace.xml 12 | .idea/**/tasks.xml 13 | .idea/**/usage.statistics.xml 14 | .idea/**/dictionaries 15 | .idea/**/shelf 16 | 17 | # Generated files 18 | .idea/**/contentModel.xml 19 | 20 | # Sensitive or high-churn files 21 | .idea/**/dataSources/ 22 | .idea/**/dataSources.ids 23 | .idea/**/dataSources.local.xml 24 | .idea/**/sqlDataSources.xml 25 | .idea/**/dynamic.xml 26 | .idea/**/uiDesigner.xml 27 | .idea/**/dbnavigator.xml 28 | 29 | # Gradle 30 | .idea/**/gradle.xml 31 | .idea/**/libraries 32 | 33 | # Gradle and Maven with auto-import 34 | # When using Gradle or Maven with auto-import, you should exclude module files, 35 | # since they will be recreated, and may cause churn. Uncomment if using 36 | # auto-import. 37 | # .idea/artifacts 38 | # .idea/compiler.xml 39 | # .idea/jarRepositories.xml 40 | # .idea/modules.xml 41 | # .idea/*.iml 42 | # .idea/modules 43 | # *.iml 44 | # *.ipr 45 | 46 | # CMake 47 | cmake-build-*/ 48 | 49 | # Mongo Explorer plugin 50 | .idea/**/mongoSettings.xml 51 | 52 | # File-based project format 53 | *.iws 54 | 55 | # IntelliJ 56 | out/ 57 | 58 | # mpeltonen/sbt-idea plugin 59 | .idea_modules/ 60 | 61 | # JIRA plugin 62 | atlassian-ide-plugin.xml 63 | 64 | # Cursive Clojure plugin 65 | .idea/replstate.xml 66 | 67 | # Crashlytics plugin (for Android Studio and IntelliJ) 68 | com_crashlytics_export_strings.xml 69 | crashlytics.properties 70 | crashlytics-build.properties 71 | fabric.properties 72 | 73 | # Editor-based Rest Client 74 | .idea/httpRequests 75 | 76 | # Android studio 3.1+ serialized cache file 77 | .idea/caches/build_file_checksums.ser 78 | 79 | ### JetBrains Patch ### 80 | # Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 81 | 82 | # *.iml 83 | # modules.xml 84 | # .idea/misc.xml 85 | # *.ipr 86 | 87 | # Sonarlint plugin 88 | # https://plugins.jetbrains.com/plugin/7973-sonarlint 89 | .idea/**/sonarlint/ 90 | 91 | # SonarQube Plugin 92 | # https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin 93 | .idea/**/sonarIssues.xml 94 | 95 | # Markdown Navigator plugin 96 | # https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced 97 | .idea/**/markdown-navigator.xml 98 | .idea/**/markdown-navigator-enh.xml 99 | .idea/**/markdown-navigator/ 100 | 101 | # Cache file creation bug 102 | # See https://youtrack.jetbrains.com/issue/JBR-2257 103 | .idea/$CACHE_FILE$ 104 | 105 | # CodeStream plugin 106 | # https://plugins.jetbrains.com/plugin/12206-codestream 107 | .idea/codestream.xml 108 | 109 | ### JetBrains+all ### 110 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider 111 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 112 | 113 | # User-specific stuff 114 | 115 | # Generated files 116 | 117 | # Sensitive or high-churn files 118 | 119 | # Gradle 120 | 121 | # Gradle and Maven with auto-import 122 | # When using Gradle or Maven with auto-import, you should exclude module files, 123 | # since they will be recreated, and may cause churn. Uncomment if using 124 | # auto-import. 125 | # .idea/artifacts 126 | # .idea/compiler.xml 127 | # .idea/jarRepositories.xml 128 | # .idea/modules.xml 129 | # .idea/*.iml 130 | # .idea/modules 131 | # *.iml 132 | # *.ipr 133 | 134 | # CMake 135 | 136 | # Mongo Explorer plugin 137 | 138 | # File-based project format 139 | 140 | # IntelliJ 141 | 142 | # mpeltonen/sbt-idea plugin 143 | 144 | # JIRA plugin 145 | 146 | # Cursive Clojure plugin 147 | 148 | # Crashlytics plugin (for Android Studio and IntelliJ) 149 | 150 | # Editor-based Rest Client 151 | 152 | # Android studio 3.1+ serialized cache file 153 | 154 | ### JetBrains+all Patch ### 155 | # Ignores the whole .idea folder and all .iml files 156 | # See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360 157 | 158 | .idea/ 159 | 160 | # Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023 161 | 162 | *.iml 163 | modules.xml 164 | .idea/misc.xml 165 | *.ipr 166 | 167 | # Sonarlint plugin 168 | .idea/sonarlint 169 | 170 | ### JetBrains+iml ### 171 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider 172 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 173 | 174 | # User-specific stuff 175 | 176 | # Generated files 177 | 178 | # Sensitive or high-churn files 179 | 180 | # Gradle 181 | 182 | # Gradle and Maven with auto-import 183 | # When using Gradle or Maven with auto-import, you should exclude module files, 184 | # since they will be recreated, and may cause churn. Uncomment if using 185 | # auto-import. 186 | # .idea/artifacts 187 | # .idea/compiler.xml 188 | # .idea/jarRepositories.xml 189 | # .idea/modules.xml 190 | # .idea/*.iml 191 | # .idea/modules 192 | # *.iml 193 | # *.ipr 194 | 195 | # CMake 196 | 197 | # Mongo Explorer plugin 198 | 199 | # File-based project format 200 | 201 | # IntelliJ 202 | 203 | # mpeltonen/sbt-idea plugin 204 | 205 | # JIRA plugin 206 | 207 | # Cursive Clojure plugin 208 | 209 | # Crashlytics plugin (for Android Studio and IntelliJ) 210 | 211 | # Editor-based Rest Client 212 | 213 | # Android studio 3.1+ serialized cache file 214 | 215 | ### JetBrains+iml Patch ### 216 | # Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023 217 | 218 | 219 | ### Python ### 220 | # Byte-compiled / optimized / DLL files 221 | __pycache__/ 222 | *.py[cod] 223 | *$py.class 224 | 225 | # C extensions 226 | *.so 227 | 228 | # Distribution / packaging 229 | .Python 230 | build/ 231 | develop-eggs/ 232 | dist/ 233 | downloads/ 234 | eggs/ 235 | .eggs/ 236 | lib/ 237 | lib64/ 238 | parts/ 239 | sdist/ 240 | var/ 241 | wheels/ 242 | pip-wheel-metadata/ 243 | share/python-wheels/ 244 | *.egg-info/ 245 | .installed.cfg 246 | *.egg 247 | MANIFEST 248 | 249 | # PyInstaller 250 | # Usually these files are written by a python script from a template 251 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 252 | *.manifest 253 | *.spec 254 | 255 | # Installer logs 256 | pip-log.txt 257 | pip-delete-this-directory.txt 258 | 259 | # Unit test / coverage reports 260 | htmlcov/ 261 | .tox/ 262 | .nox/ 263 | .coverage 264 | .coverage.* 265 | .cache 266 | nosetests.xml 267 | coverage.xml 268 | *.cover 269 | *.py,cover 270 | .hypothesis/ 271 | .pytest_cache/ 272 | pytestdebug.log 273 | 274 | # Translations 275 | *.mo 276 | *.pot 277 | 278 | # Django stuff: 279 | *.log 280 | local_settings.py 281 | db.sqlite3 282 | db.sqlite3-journal 283 | 284 | # Flask stuff: 285 | instance/ 286 | .webassets-cache 287 | 288 | # Scrapy stuff: 289 | .scrapy 290 | 291 | # Sphinx documentation 292 | docs/_build/ 293 | doc/_build/ 294 | 295 | # PyBuilder 296 | target/ 297 | 298 | # Jupyter Notebook 299 | .ipynb_checkpoints 300 | 301 | # IPython 302 | profile_default/ 303 | ipython_config.py 304 | 305 | # pyenv 306 | .python-version 307 | 308 | # pipenv 309 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 310 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 311 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 312 | # install all needed dependencies. 313 | #Pipfile.lock 314 | 315 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 316 | __pypackages__/ 317 | 318 | # Celery stuff 319 | celerybeat-schedule 320 | celerybeat.pid 321 | 322 | # SageMath parsed files 323 | *.sage.py 324 | 325 | # Environments 326 | .env 327 | .venv 328 | env/ 329 | venv/ 330 | ENV/ 331 | env.bak/ 332 | venv.bak/ 333 | 334 | # Spyder project settings 335 | .spyderproject 336 | .spyproject 337 | 338 | # Rope project settings 339 | .ropeproject 340 | 341 | # mkdocs documentation 342 | /site 343 | 344 | # mypy 345 | .mypy_cache/ 346 | .dmypy.json 347 | dmypy.json 348 | 349 | # Pyre type checker 350 | .pyre/ 351 | 352 | # pytype static type analyzer 353 | .pytype/ 354 | 355 | ### VisualStudioCode ### 356 | .vscode/* 357 | !.vscode/settings.json 358 | !.vscode/tasks.json 359 | !.vscode/launch.json 360 | !.vscode/extensions.json 361 | *.code-workspace 362 | 363 | ### VisualStudioCode Patch ### 364 | # Ignore all local history of files 365 | .history 366 | 367 | ### Windows ### 368 | # Windows thumbnail cache files 369 | Thumbs.db 370 | Thumbs.db:encryptable 371 | ehthumbs.db 372 | ehthumbs_vista.db 373 | 374 | # Dump file 375 | *.stackdump 376 | 377 | # Folder config file 378 | [Dd]esktop.ini 379 | 380 | # Recycle Bin used on file shares 381 | $RECYCLE.BIN/ 382 | 383 | # Windows Installer files 384 | *.cab 385 | *.msi 386 | *.msix 387 | *.msm 388 | *.msp 389 | 390 | # Windows shortcuts 391 | *.lnk 392 | 393 | ### VisualStudio ### 394 | ## Ignore Visual Studio temporary files, build results, and 395 | ## files generated by popular Visual Studio add-ons. 396 | ## 397 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 398 | 399 | # User-specific files 400 | *.rsuser 401 | *.suo 402 | *.user 403 | *.userosscache 404 | *.sln.docstates 405 | 406 | # User-specific files (MonoDevelop/Xamarin Studio) 407 | *.userprefs 408 | 409 | # Mono auto generated files 410 | mono_crash.* 411 | 412 | # Build results 413 | [Dd]ebug/ 414 | [Dd]ebugPublic/ 415 | [Rr]elease/ 416 | [Rr]eleases/ 417 | x64/ 418 | x86/ 419 | [Aa][Rr][Mm]/ 420 | [Aa][Rr][Mm]64/ 421 | bld/ 422 | [Bb]in/ 423 | [Oo]bj/ 424 | [Ll]og/ 425 | [Ll]ogs/ 426 | 427 | # Visual Studio 2015/2017 cache/options directory 428 | .vs/ 429 | # Uncomment if you have tasks that create the project's static files in wwwroot 430 | #wwwroot/ 431 | 432 | # Visual Studio 2017 auto generated files 433 | Generated\ Files/ 434 | 435 | # MSTest test Results 436 | [Tt]est[Rr]esult*/ 437 | [Bb]uild[Ll]og.* 438 | 439 | # NUnit 440 | *.VisualState.xml 441 | TestResult.xml 442 | nunit-*.xml 443 | 444 | # Build Results of an ATL Project 445 | [Dd]ebugPS/ 446 | [Rr]eleasePS/ 447 | dlldata.c 448 | 449 | # Benchmark Results 450 | BenchmarkDotNet.Artifacts/ 451 | 452 | # .NET Core 453 | project.lock.json 454 | project.fragment.lock.json 455 | artifacts/ 456 | 457 | # StyleCop 458 | StyleCopReport.xml 459 | 460 | # Files built by Visual Studio 461 | *_i.c 462 | *_p.c 463 | *_h.h 464 | *.ilk 465 | *.meta 466 | *.obj 467 | *.iobj 468 | *.pch 469 | *.pdb 470 | *.ipdb 471 | *.pgc 472 | *.pgd 473 | *.rsp 474 | *.sbr 475 | *.tlb 476 | *.tli 477 | *.tlh 478 | *.tmp 479 | *.tmp_proj 480 | *_wpftmp.csproj 481 | *.vspscc 482 | *.vssscc 483 | .builds 484 | *.pidb 485 | *.svclog 486 | *.scc 487 | 488 | # Chutzpah Test files 489 | _Chutzpah* 490 | 491 | # Visual C++ cache files 492 | ipch/ 493 | *.aps 494 | *.ncb 495 | *.opendb 496 | *.opensdf 497 | *.sdf 498 | *.cachefile 499 | *.VC.db 500 | *.VC.VC.opendb 501 | 502 | # Visual Studio profiler 503 | *.psess 504 | *.vsp 505 | *.vspx 506 | *.sap 507 | 508 | # Visual Studio Trace Files 509 | *.e2e 510 | 511 | # TFS 2012 Local Workspace 512 | $tf/ 513 | 514 | # Guidance Automation Toolkit 515 | *.gpState 516 | 517 | # ReSharper is a .NET coding add-in 518 | _ReSharper*/ 519 | *.[Rr]e[Ss]harper 520 | *.DotSettings.user 521 | 522 | # TeamCity is a build add-in 523 | _TeamCity* 524 | 525 | # DotCover is a Code Coverage Tool 526 | *.dotCover 527 | 528 | # AxoCover is a Code Coverage Tool 529 | .axoCover/* 530 | !.axoCover/settings.json 531 | 532 | # Coverlet is a free, cross platform Code Coverage Tool 533 | coverage*[.json, .xml, .info] 534 | 535 | # Visual Studio code coverage results 536 | *.coverage 537 | *.coveragexml 538 | 539 | # NCrunch 540 | _NCrunch_* 541 | .*crunch*.local.xml 542 | nCrunchTemp_* 543 | 544 | # MightyMoose 545 | *.mm.* 546 | AutoTest.Net/ 547 | 548 | # Web workbench (sass) 549 | .sass-cache/ 550 | 551 | # Installshield output folder 552 | [Ee]xpress/ 553 | 554 | # DocProject is a documentation generator add-in 555 | DocProject/buildhelp/ 556 | DocProject/Help/*.HxT 557 | DocProject/Help/*.HxC 558 | DocProject/Help/*.hhc 559 | DocProject/Help/*.hhk 560 | DocProject/Help/*.hhp 561 | DocProject/Help/Html2 562 | DocProject/Help/html 563 | 564 | # Click-Once directory 565 | publish/ 566 | 567 | # Publish Web Output 568 | *.[Pp]ublish.xml 569 | *.azurePubxml 570 | # Note: Comment the next line if you want to checkin your web deploy settings, 571 | # but database connection strings (with potential passwords) will be unencrypted 572 | *.pubxml 573 | *.publishproj 574 | 575 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 576 | # checkin your Azure Web App publish settings, but sensitive information contained 577 | # in these scripts will be unencrypted 578 | PublishScripts/ 579 | 580 | # NuGet Packages 581 | *.nupkg 582 | # NuGet Symbol Packages 583 | *.snupkg 584 | # The packages folder can be ignored because of Package Restore 585 | **/[Pp]ackages/* 586 | # except build/, which is used as an MSBuild target. 587 | !**/[Pp]ackages/build/ 588 | # Uncomment if necessary however generally it will be regenerated when needed 589 | #!**/[Pp]ackages/repositories.config 590 | # NuGet v3's project.json files produces more ignorable files 591 | *.nuget.props 592 | *.nuget.targets 593 | 594 | # Microsoft Azure Build Output 595 | csx/ 596 | *.build.csdef 597 | 598 | # Microsoft Azure Emulator 599 | ecf/ 600 | rcf/ 601 | 602 | # Windows Store app package directories and files 603 | AppPackages/ 604 | BundleArtifacts/ 605 | Package.StoreAssociation.xml 606 | _pkginfo.txt 607 | *.appx 608 | *.appxbundle 609 | *.appxupload 610 | 611 | # Visual Studio cache files 612 | # files ending in .cache can be ignored 613 | *.[Cc]ache 614 | # but keep track of directories ending in .cache 615 | !?*.[Cc]ache/ 616 | 617 | # Others 618 | ClientBin/ 619 | ~$* 620 | *~ 621 | *.dbmdl 622 | *.dbproj.schemaview 623 | *.jfm 624 | *.pfx 625 | *.publishsettings 626 | orleans.codegen.cs 627 | 628 | # Including strong name files can present a security risk 629 | # (https://github.com/github/gitignore/pull/2483#issue-259490424) 630 | #*.snk 631 | 632 | # Since there are multiple workflows, uncomment next line to ignore bower_components 633 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 634 | #bower_components/ 635 | 636 | # RIA/Silverlight projects 637 | Generated_Code/ 638 | 639 | # Backup & report files from converting an old project file 640 | # to a newer Visual Studio version. Backup files are not needed, 641 | # because we have git ;-) 642 | _UpgradeReport_Files/ 643 | Backup*/ 644 | UpgradeLog*.XML 645 | UpgradeLog*.htm 646 | ServiceFabricBackup/ 647 | *.rptproj.bak 648 | 649 | # SQL Server files 650 | *.mdf 651 | *.ldf 652 | *.ndf 653 | 654 | # Business Intelligence projects 655 | *.rdl.data 656 | *.bim.layout 657 | *.bim_*.settings 658 | *.rptproj.rsuser 659 | *- [Bb]ackup.rdl 660 | *- [Bb]ackup ([0-9]).rdl 661 | *- [Bb]ackup ([0-9][0-9]).rdl 662 | 663 | # Microsoft Fakes 664 | FakesAssemblies/ 665 | 666 | # GhostDoc plugin setting file 667 | *.GhostDoc.xml 668 | 669 | # Node.js Tools for Visual Studio 670 | .ntvs_analysis.dat 671 | node_modules/ 672 | 673 | # Visual Studio 6 build log 674 | *.plg 675 | 676 | # Visual Studio 6 workspace options file 677 | *.opt 678 | 679 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 680 | *.vbw 681 | 682 | # Visual Studio LightSwitch build output 683 | **/*.HTMLClient/GeneratedArtifacts 684 | **/*.DesktopClient/GeneratedArtifacts 685 | **/*.DesktopClient/ModelManifest.xml 686 | **/*.Server/GeneratedArtifacts 687 | **/*.Server/ModelManifest.xml 688 | _Pvt_Extensions 689 | 690 | # Paket dependency manager 691 | .paket/paket.exe 692 | paket-files/ 693 | 694 | # FAKE - F# Make 695 | .fake/ 696 | 697 | # CodeRush personal settings 698 | .cr/personal 699 | 700 | # Python Tools for Visual Studio (PTVS) 701 | *.pyc 702 | 703 | # Cake - Uncomment if you are using it 704 | # tools/** 705 | # !tools/packages.config 706 | 707 | # Tabs Studio 708 | *.tss 709 | 710 | # Telerik's JustMock configuration file 711 | *.jmconfig 712 | 713 | # BizTalk build output 714 | *.btp.cs 715 | *.btm.cs 716 | *.odx.cs 717 | *.xsd.cs 718 | 719 | # OpenCover UI analysis results 720 | OpenCover/ 721 | 722 | # Azure Stream Analytics local run output 723 | ASALocalRun/ 724 | 725 | # MSBuild Binary and Structured Log 726 | *.binlog 727 | 728 | # NVidia Nsight GPU debugger configuration file 729 | *.nvuser 730 | 731 | # MFractors (Xamarin productivity tool) working folder 732 | .mfractor/ 733 | 734 | # Local History for Visual Studio 735 | .localhistory/ 736 | 737 | # BeatPulse healthcheck temp database 738 | healthchecksdb 739 | 740 | # Backup folder for Package Reference Convert tool in Visual Studio 2017 741 | MigrationBackup/ 742 | 743 | # Ionide (cross platform F# VS Code tools) working folder 744 | .ionide/ 745 | 746 | # End of https://www.toptal.com/developers/gitignore/api/windows,visualstudiocode,jetbrains,jetbrains+all,jetbrains+iml,python,visualstudio 747 | 748 | # Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option) 749 | 750 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Spark Projects with Docker 2 | 3 | Project build using: https://github.com/big-data-europe/docker-spark 4 | 5 | Supported versions: 6 | 7 | * Spark 3.0.0 for Hadoop 3.2 with OpenJDK 8 and Scala 2.12 8 | * Spark 2.4.5 for Hadoop 2.7+ with OpenJDK 8 9 | 10 | ## How to start 11 | 12 | ```bash 13 | docker-compose up 14 | ``` 15 | 16 | Master: 17 | http://localhost:8080 18 | 19 | Workers: 20 | 21 | http://localhost:8081 22 | 23 | http://localhost:8082 24 | 25 | ## Execute container with worker 1 26 | 27 | ```sh 28 | docker exec -it spark-worker-1 bash 29 | ``` 30 | 31 | ## Python examples 32 | 33 | Run pyspark CLI: 34 | 35 | ```sh 36 | # Run pyspark CLI 37 | ./spark/bin/pyspark 38 | 39 | # Execute a file 40 | cd home/python/example 41 | ./../../../spark/bin/spark-submit example.py data.csv 42 | ``` 43 | 44 | **Spark monitor:** 45 | 46 | http://localhost:4040 47 | 48 | http://localhost:4041 49 | 50 | apk add gcc 51 | pip3 install notebook 52 | 53 | -------------------------------------------------------------------------------- /base/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.10 2 | 3 | LABEL maintainer="Gezim Sejdiu , Giannis Mouchakis " 4 | 5 | ENV ENABLE_INIT_DAEMON true 6 | ENV INIT_DAEMON_BASE_URI http://identifier/init-daemon 7 | ENV INIT_DAEMON_STEP spark_master_init 8 | 9 | ENV SPARK_VERSION=3.0.0 10 | ENV HADOOP_VERSION=3.2 11 | 12 | COPY wait-for-step.sh / 13 | COPY execute-step.sh / 14 | COPY finish-step.sh / 15 | 16 | #COPY bde-spark.css /css/org/apache/spark/ui/static/timeline-view.css 17 | 18 | RUN apk add --no-cache curl bash openjdk8-jre python3 py-pip nss libc6-compat \ 19 | && ln -s /lib64/ld-linux-x86-64.so.2 /lib/ld-linux-x86-64.so.2 \ 20 | && chmod +x *.sh \ 21 | && wget https://archive.apache.org/dist/spark/spark-${SPARK_VERSION}/spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz \ 22 | && tar -xvzf spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz \ 23 | && mv spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION} spark \ 24 | && rm spark-${SPARK_VERSION}-bin-hadoop${HADOOP_VERSION}.tgz \ 25 | #&& cd /css \ 26 | #&& jar uf /spark/jars/spark-core_2.11-${SPARK_VERSION}.jar org/apache/spark/ui/static/timeline-view.css \ 27 | && cd / 28 | 29 | #Give permission to execute scripts 30 | RUN chmod +x /wait-for-step.sh && chmod +x /execute-step.sh && chmod +x /finish-step.sh 31 | 32 | # Fix the value of PYTHONHASHSEED 33 | # Note: this is needed when you use Python 3.3 or greater 34 | ENV PYTHONHASHSEED 1 35 | -------------------------------------------------------------------------------- /base/README.md: -------------------------------------------------------------------------------- 1 | # Spark base 2 | 3 | The Spark base image serves as a base image for the Spark master, Spark worker and Spark submit images. The user should not run this image directly. See [big-data-europe/docker-spark README](https://github.com/big-data-europe/docker-spark) for more information. -------------------------------------------------------------------------------- /base/execute-step.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ $ENABLE_INIT_DAEMON = "true" ] 4 | then 5 | echo "Execute step ${INIT_DAEMON_STEP} in pipeline" 6 | while true; do 7 | sleep 5 8 | echo -n '.' 9 | string=$(curl -sL -w "%{http_code}" -X PUT $INIT_DAEMON_BASE_URI/execute?step=$INIT_DAEMON_STEP -o /dev/null) 10 | [ "$string" = "204" ] && break 11 | done 12 | echo "Notified execution of step ${INIT_DAEMON_STEP}" 13 | fi 14 | 15 | -------------------------------------------------------------------------------- /base/finish-step.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ $ENABLE_INIT_DAEMON = "true" ] 4 | then 5 | echo "Finish step ${INIT_DAEMON_STEP} in pipeline" 6 | while true; do 7 | sleep 5 8 | echo -n '.' 9 | string=$(curl -sL -w "%{http_code}" -X PUT $INIT_DAEMON_BASE_URI/finish?step=$INIT_DAEMON_STEP -o /dev/null) 10 | [ "$string" = "204" ] && break 11 | done 12 | echo "Notified finish of step ${INIT_DAEMON_STEP}" 13 | fi 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /base/wait-for-step.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ $ENABLE_INIT_DAEMON = "true" ] 4 | then 5 | echo "Validating if step ${INIT_DAEMON_STEP} can start in pipeline" 6 | while true; do 7 | sleep 5 8 | echo -n '.' 9 | string=$(curl -s $INIT_DAEMON_BASE_URI/canStart?step=$INIT_DAEMON_STEP) 10 | [ "$string" = "true" ] && break 11 | done 12 | echo "Can start step ${INIT_DAEMON_STEP}" 13 | fi 14 | -------------------------------------------------------------------------------- /codes/python/1.-initial/python.py: -------------------------------------------------------------------------------- 1 | from pyspark import SparkContext 2 | from pyspark.sql import SparkSession 3 | import time 4 | spark = SparkSession.builder.master("local").appName("miPrimerSession").getOrCreate() 5 | spark.stop() 6 | sc = SparkContext(master="local", appName="miPrimerContexto") 7 | spark2 = SparkSession(sc) 8 | 9 | time.sleep(30) 10 | 11 | spark2 -------------------------------------------------------------------------------- /codes/python/2- Transformations/Transformations.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 3, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "name": "stdout", 10 | "output_type": "stream", 11 | "text": [ 12 | "Collecting pyspark\n", 13 | " Using cached pyspark-3.0.1.tar.gz (204.2 MB)\n", 14 | "Collecting py4j==0.10.9\n", 15 | " Using cached py4j-0.10.9-py2.py3-none-any.whl (198 kB)\n", 16 | "Building wheels for collected packages: pyspark\n", 17 | " Building wheel for pyspark (setup.py): started\n", 18 | " Building wheel for pyspark (setup.py): still running...\n", 19 | " Building wheel for pyspark (setup.py): finished with status 'done'\n", 20 | " Created wheel for pyspark: filename=pyspark-3.0.1-py2.py3-none-any.whl size=204612247 sha256=7713ec9189c16b8ff08be79cc4d712da42db82061cbe9acfcc323f7e19351bdd\n", 21 | " Stored in directory: c:\\users\\elias\\appdata\\local\\pip\\cache\\wheels\\ea\\21\\84\\970b03913d0d6a96ef51c34c878add0de9e4ecbb7c764ea21f\n", 22 | "Successfully built pyspark\n", 23 | "Installing collected packages: py4j, pyspark\n", 24 | "Successfully installed py4j-0.10.9 pyspark-3.0.1\n" 25 | ] 26 | } 27 | ], 28 | "source": [ 29 | "!pip install pyspark" 30 | ] 31 | }, 32 | { 33 | "cell_type": "code", 34 | "execution_count": 7, 35 | "metadata": {}, 36 | "outputs": [ 37 | { 38 | "ename": "ValueError", 39 | "evalue": "Cannot run multiple SparkContexts at once; existing SparkContext(app=transformacionesYAcciones, master=local) created by __init__ at :3 ", 40 | "output_type": "error", 41 | "traceback": [ 42 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", 43 | "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", 44 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0mpyspark\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mSparkContext\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0msc\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mSparkContext\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmaster\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"local\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mappName\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"transformacionesYAcciones\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 4\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;31m# Crear un RDD\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", 45 | "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pyspark\\context.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, master, appName, sparkHome, pyFiles, environment, batchSize, serializer, conf, gateway, jsc, profiler_cls)\u001b[0m\n\u001b[0;32m 131\u001b[0m \" is not allowed as it is a security risk.\")\n\u001b[0;32m 132\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 133\u001b[1;33m \u001b[0mSparkContext\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_ensure_initialized\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mgateway\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mgateway\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mconf\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mconf\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 134\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 135\u001b[0m self._do_init(master, appName, sparkHome, pyFiles, environment, batchSize, serializer,\n", 46 | "\u001b[1;32m~\\anaconda3\\lib\\site-packages\\pyspark\\context.py\u001b[0m in \u001b[0;36m_ensure_initialized\u001b[1;34m(cls, instance, gateway, conf)\u001b[0m\n\u001b[0;32m 334\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 335\u001b[0m \u001b[1;31m# Raise error if there is already a running Spark context\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 336\u001b[1;33m raise ValueError(\n\u001b[0m\u001b[0;32m 337\u001b[0m \u001b[1;34m\"Cannot run multiple SparkContexts at once; \"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 338\u001b[0m \u001b[1;34m\"existing SparkContext(app=%s, master=%s)\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", 47 | "\u001b[1;31mValueError\u001b[0m: Cannot run multiple SparkContexts at once; existing SparkContext(app=transformacionesYAcciones, master=local) created by __init__ at :3 " 48 | ] 49 | } 50 | ], 51 | "source": [ 52 | "from pyspark import SparkContext\n", 53 | "\n", 54 | "sc = SparkContext(master=\"local\", appName=\"transformacionesYAcciones\")\n", 55 | "\n", 56 | "# Crear un RDD\n", 57 | "rdd1 = sc.parallelize([1, 2, 3])" 58 | ] 59 | }, 60 | { 61 | "cell_type": "code", 62 | "execution_count": 8, 63 | "metadata": {}, 64 | "outputs": [ 65 | { 66 | "data": { 67 | "text/plain": [ 68 | "pyspark.rdd.RDD" 69 | ] 70 | }, 71 | "execution_count": 8, 72 | "metadata": {}, 73 | "output_type": "execute_result" 74 | } 75 | ], 76 | "source": [ 77 | "type(rdd1)" 78 | ] 79 | }, 80 | { 81 | "cell_type": "code", 82 | "execution_count": 6, 83 | "metadata": {}, 84 | "outputs": [ 85 | { 86 | "data": { 87 | "text/plain": [ 88 | "[1, 2, 3]" 89 | ] 90 | }, 91 | "execution_count": 6, 92 | "metadata": {}, 93 | "output_type": "execute_result" 94 | } 95 | ], 96 | "source": [ 97 | "# Ver un RDD\n", 98 | "rdd1.collect()" 99 | ] 100 | }, 101 | { 102 | "cell_type": "code", 103 | "execution_count": null, 104 | "metadata": {}, 105 | "outputs": [], 106 | "source": [] 107 | } 108 | ], 109 | "metadata": { 110 | "kernelspec": { 111 | "display_name": "Python 3", 112 | "language": "python", 113 | "name": "python3" 114 | }, 115 | "language_info": { 116 | "codemirror_mode": { 117 | "name": "ipython", 118 | "version": 3 119 | }, 120 | "file_extension": ".py", 121 | "mimetype": "text/x-python", 122 | "name": "python", 123 | "nbconvert_exporter": "python", 124 | "pygments_lexer": "ipython3", 125 | "version": "3.8.3" 126 | } 127 | }, 128 | "nbformat": 4, 129 | "nbformat_minor": 4 130 | } 131 | -------------------------------------------------------------------------------- /codes/python/2- Transformations/transformations.py: -------------------------------------------------------------------------------- 1 | from pyspark import SparkContext 2 | import time 3 | 4 | sc = SparkContext(master="local", appName="transformacionesYAcciones") 5 | 6 | rdd1 = sc.parallelize([1, 2, 3]) 7 | 8 | path = "./../files/" 9 | 10 | equiposOlimpicosRDD = sc.textFile(path + "paises.csv").map(lambda line: line.split(",")) 11 | 12 | equiposOlimpicosRDD.take(5) 13 | 14 | time.sleep(300) 15 | 16 | sc.stop() 17 | -------------------------------------------------------------------------------- /codes/python/example/example.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | from pyspark.sql import SparkSession 4 | from pyspark.sql.functions import count 5 | 6 | if __name__ == "__main__": 7 | if len(sys.argv) != 2: 8 | sys.exit(-1) 9 | 10 | spark = (SparkSession 11 | .builder 12 | .appName("PythonMnMCount") 13 | .getOrCreate()) 14 | # get the M&M data set file name 15 | mnm_file = sys.argv[1] 16 | # read the file into a Spark DataFrame 17 | mnm_df = (spark.read.format("csv") 18 | .option("header", "true") 19 | .option("inferSchema", "true") 20 | .load(mnm_file)) 21 | mnm_df.show(n=5, truncate=False) 22 | # aggregate count of all colors and groupBy state and color 23 | # orderBy descending order 24 | count_mnm_df = (mnm_df.select("State", "Color", "Count") 25 | .groupBy("State", "Color") 26 | .agg(count("Count") 27 | .alias("Total")) 28 | .orderBy("Total", ascending=False)) 29 | # show all the resulting aggregation for all the dates and colors 30 | count_mnm_df.show(n=60, truncate=False) 31 | print("Total Rows = %d" % (count_mnm_df.count())) 32 | # 33 | # find the aggregate count for California by filtering 34 | ca_count_mnm_df = (mnm_df.select("*") 35 | .where(mnm_df.State == 'CA') 36 | .groupBy("State", "Color") 37 | .agg(count("Count") 38 | .alias("Total")) 39 | .orderBy("Total", ascending=False)) 40 | 41 | # show the resulting aggregation for California 42 | ca_count_mnm_df.show(n=10, truncate=False) 43 | -------------------------------------------------------------------------------- /codes/python/files/deporte.csv: -------------------------------------------------------------------------------- 1 | deporte_id,deporte 2 | 1,Basketball 3 | 2,Judo 4 | 3,Football 5 | 4,Tug-Of-War 6 | 5,Speed Skating 7 | 6,Cross Country Skiing 8 | 7,Athletics 9 | 8,Ice Hockey 10 | 9,Swimming 11 | 10,Badminton 12 | 11,Sailing 13 | 12,Biathlon 14 | 13,Gymnastics 15 | 14,Art Competitions 16 | 15,Alpine Skiing 17 | 16,Handball 18 | 17,Weightlifting 19 | 18,Wrestling 20 | 19,Luge 21 | 20,Water Polo 22 | 21,Hockey 23 | 22,Rowing 24 | 23,Bobsleigh 25 | 24,Fencing 26 | 25,Equestrianism 27 | 26,Shooting 28 | 27,Boxing 29 | 28,Taekwondo 30 | 29,Cycling 31 | 30,Diving 32 | 31,Canoeing 33 | 32,Tennis 34 | 33,Modern Pentathlon 35 | 34,Figure Skating 36 | 35,Golf 37 | 36,Softball 38 | 37,Archery 39 | 38,Volleyball 40 | 39,Synchronized Swimming 41 | 40,Table Tennis 42 | 41,Nordic Combined 43 | 42,Baseball 44 | 43,Rhythmic Gymnastics 45 | 44,Freestyle Skiing 46 | 45,Rugby Sevens 47 | 46,Trampolining 48 | 47,Beach Volleyball 49 | 48,Triathlon 50 | 49,Ski Jumping 51 | 50,Curling 52 | 51,Snowboarding 53 | 52,Rugby 54 | 53,Short Track Speed Skating 55 | 54,Skeleton 56 | 55,Lacrosse 57 | 56,Polo 58 | 57,Cricket 59 | 58,Racquets 60 | 59,Motorboating 61 | 60,Military Ski Patrol 62 | 61,Croquet 63 | 62,Jeu De Paume 64 | 63,Roque 65 | 64,Alpinism 66 | 65,Basque Pelota 67 | 66,Aeronautics 68 | -------------------------------------------------------------------------------- /codes/python/files/evento.csv: -------------------------------------------------------------------------------- 1 | evento_id,evento,deporte_id 2 | 1,Basketball Men's Basketball,1 3 | 2,Judo Men's Extra-Lightweight,2 4 | 3,Football Men's Football,3 5 | 4,Tug-Of-War Men's Tug-Of-War,4 6 | 5,Speed Skating Women's 500 metres,5 7 | 6,"Speed Skating Women's 1,000 metres",5 8 | 7,Cross Country Skiing Men's 10 kilometres,6 9 | 8,Cross Country Skiing Men's 50 kilometres,6 10 | 9,Cross Country Skiing Men's 10/15 kilometres Pursuit,6 11 | 10,Cross Country Skiing Men's 4 x 10 kilometres Relay,6 12 | 11,Cross Country Skiing Men's 30 kilometres,6 13 | 12,Athletics Women's 100 metres,7 14 | 13,Athletics Women's 4 x 100 metres Relay,7 15 | 14,Ice Hockey Men's Ice Hockey,8 16 | 15,Swimming Men's 400 metres Freestyle,9 17 | 16,Badminton Men's Singles,10 18 | 17,Sailing Women's Windsurfer,11 19 | 18,Biathlon Women's 7.5 kilometres Sprint,12 20 | 19,Swimming Men's 200 metres Breaststroke,9 21 | 20,Swimming Men's 400 metres Breaststroke,9 22 | 21,Gymnastics Men's Individual All-Around,13 23 | 22,Gymnastics Men's Team All-Around,13 24 | 23,Gymnastics Men's Floor Exercise,13 25 | 24,Gymnastics Men's Horse Vault,13 26 | 25,Gymnastics Men's Parallel Bars,13 27 | 26,Gymnastics Men's Horizontal Bar,13 28 | 27,Gymnastics Men's Rings,13 29 | 28,Gymnastics Men's Pommelled Horse,13 30 | 29,Athletics Men's Shot Put,7 31 | 30,"Art Competitions Mixed Sculpturing, Unknown Event",14 32 | 31,Alpine Skiing Men's Downhill,15 33 | 32,Alpine Skiing Men's Super G,15 34 | 33,Alpine Skiing Men's Giant Slalom,15 35 | 34,Alpine Skiing Men's Slalom,15 36 | 35,Alpine Skiing Men's Combined,15 37 | 36,Handball Women's Handball,16 38 | 37,Weightlifting Women's Super-Heavyweight,17 39 | 38,"Wrestling Men's Light-Heavyweight, Greco-Roman",18 40 | 39,Speed Skating Men's 500 metres,5 41 | 40,"Speed Skating Men's 1,500 metres",5 42 | 41,"Gymnastics Men's Team All-Around, Free System",13 43 | 42,Luge Women's Singles,19 44 | 43,Water Polo Men's Water Polo,20 45 | 44,Sailing Mixed Three Person Keelboat,11 46 | 45,Hockey Women's Hockey,21 47 | 46,Rowing Men's Lightweight Double Sculls,22 48 | 47,Athletics Men's Pole Vault,7 49 | 48,Athletics Men's High Jump,7 50 | 49,Sailing Men's Two Person Dinghy,11 51 | 50,"Athletics Men's 1,500 metres",7 52 | 51,Bobsleigh Men's Four,23 53 | 52,Swimming Men's 100 metres Butterfly,9 54 | 53,Swimming Men's 200 metres Butterfly,9 55 | 54,Swimming Men's 4 x 100 metres Medley Relay,9 56 | 55,Football Women's Football,3 57 | 56,"Fencing Men's Foil, Individual",24 58 | 57,"Fencing Men's epee, Individual",24 59 | 58,"Fencing Men's epee, Team",24 60 | 59,"Speed Skating Men's 5,000 metres",5 61 | 60,"Speed Skating Men's 10,000 metres",5 62 | 61,Sailing Mixed 8 metres,11 63 | 62,"Equestrianism Mixed Jumping, Individual",25 64 | 63,Cross Country Skiing Men's 15 kilometres,6 65 | 64,"Shooting Men's Small-Bore Rifle, Prone, 50 metres",26 66 | 65,"Shooting Men's Rapid-Fire Pistol, 25 metres",26 67 | 66,Shooting Men's Trap,26 68 | 67,Athletics Men's 4 x 100 metres Relay,7 69 | 68,Athletics Men's Long Jump,7 70 | 69,Boxing Men's Light-Welterweight,27 71 | 70,Athletics Women's Javelin Throw,7 72 | 71,"Wrestling Men's Heavyweight, Freestyle",18 73 | 72,Taekwondo Men's Flyweight,28 74 | 73,Boxing Men's Heavyweight,27 75 | 74,"Athletics Men's 5,000 metres",7 76 | 75,"Cycling Men's Road Race, Individual",29 77 | 76,"Cycling Men's Road Race, Team",29 78 | 77,Weightlifting Men's Lightweight,17 79 | 78,Weightlifting Men's Middleweight,17 80 | 79,Rowing Men's Coxless Pairs,22 81 | 80,Judo Men's Half-Middleweight,2 82 | 81,Taekwondo Women's Flyweight,28 83 | 82,Boxing Men's Flyweight,27 84 | 83,Basketball Women's Basketball,1 85 | 84,Diving Men's Platform,30 86 | 85,"Canoeing Men's Canadian Doubles, 500 metres",31 87 | 86,"Canoeing Men's Canadian Doubles, 1,000 metres",31 88 | 87,"Canoeing Men's Kayak Fours, 1,000 metres",31 89 | 88,Handball Men's Handball,16 90 | 89,Rowing Women's Coxless Pairs,22 91 | 90,Boxing Men's Middleweight,27 92 | 91,Judo Men's Lightweight,2 93 | 92,Boxing Men's Featherweight,27 94 | 93,Tennis Men's Doubles,32 95 | 94,Shooting Mixed Skeet,26 96 | 95,"Wrestling Men's Featherweight, Freestyle",18 97 | 96,Sailing Mixed Two Person Heavyweight Dinghy,11 98 | 97,Athletics Women's Shot Put,7 99 | 98,Rowing Men's Coxed Eights,22 100 | 99,Cycling Women's Sprint,29 101 | 100,Cycling Women's 500 metres Time Trial,29 102 | 101,Athletics Men's 110 metres Hurdles,7 103 | 102,Shooting Mixed Trap,26 104 | 103,Athletics Women's Marathon,7 105 | 104,Athletics Men's 100 metres,7 106 | 105,"Fencing Men's Foil, Team",24 107 | 106,"Fencing Men's Sabre, Team",24 108 | 107,Swimming Men's 100 metres Freestyle,9 109 | 108,Swimming Men's 4 x 200 metres Freestyle Relay,9 110 | 109,Boxing Men's Lightweight,27 111 | 110,Modern Pentathlon Men's Individual,33 112 | 111,Boxing Men's Welterweight,27 113 | 112,Rowing Men's Quadruple Sculls,22 114 | 113,Rowing Men's Double Sculls,22 115 | 114,Rowing Men's Coxed Pairs,22 116 | 115,Athletics Men's 400 metres Hurdles,7 117 | 116,Athletics Men's 400 metres,7 118 | 117,Athletics Men's Hammer Throw,7 119 | 118,Weightlifting Men's Featherweight,17 120 | 119,Athletics Men's 800 metres,7 121 | 120,Hockey Men's Hockey,21 122 | 121,Alpine Skiing Women's Slalom,15 123 | 122,Rowing Women's Single Sculls,22 124 | 123,Swimming Men's 50 metres Freestyle,9 125 | 124,Weightlifting Women's Featherweight,17 126 | 125,Water Polo Women's Water Polo,20 127 | 126,Figure Skating Men's Singles,34 128 | 127,Weightlifting Men's Heavyweight,17 129 | 128,"Equestrianism Mixed Three-Day Event, Individual",25 130 | 129,"Equestrianism Mixed Three-Day Event, Team",25 131 | 130,Figure Skating Mixed Team,34 132 | 131,Sailing Women's Three Person Keelboat,11 133 | 132,"Cycling Women's Road Race, Individual",29 134 | 133,Golf Women's Individual,35 135 | 134,Softball Women's Softball,36 136 | 135,Archery Women's Individual,37 137 | 136,"Wrestling Men's Heavyweight, Greco-Roman",18 138 | 137,Volleyball Men's Volleyball,38 139 | 138,Taekwondo Women's Heavyweight,28 140 | 139,Synchronized Swimming Women's Duet,39 141 | 140,Synchronized Swimming Women's Team,39 142 | 141,Taekwondo Women's Featherweight,28 143 | 142,Athletics Men's Marathon,7 144 | 143,Athletics Men's 4 x 400 metres Relay,7 145 | 144,"Athletics Men's 10,000 metres",7 146 | 145,"Athletics Women's 3,000 metres",7 147 | 146,Diving Women's Platform,30 148 | 147,"Shooting Men's Air Rifle, 10 metres",26 149 | 148,Athletics Men's 200 metres,7 150 | 149,Weightlifting Men's Flyweight,17 151 | 150,Swimming Men's 100 metres Backstroke,9 152 | 151,Weightlifting Men's Light-Heavyweight,17 153 | 152,"Wrestling Men's Lightweight, Greco-Roman",18 154 | 153,"Fencing Men's Sabre, Individual",24 155 | 154,"Wrestling Men's Super-Heavyweight, Greco-Roman",18 156 | 155,"Shooting Men's Free Pistol, 50 metres",26 157 | 156,"Shooting Men's Air Pistol, 10 metres",26 158 | 157,Rowing Men's Coxless Fours,22 159 | 158,Boxing Men's Light-Flyweight,27 160 | 159,Boxing Men's Super-Heavyweight,27 161 | 160,"Wrestling Men's Flyweight, Greco-Roman",18 162 | 161,"Shooting Women's Air Rifle, 10 metres",26 163 | 162,Weightlifting Men's Middle-Heavyweight,17 164 | 163,Athletics Men's Javelin Throw,7 165 | 164,Volleyball Women's Volleyball,38 166 | 165,"Wrestling Men's Welterweight, Greco-Roman",18 167 | 166,"Wrestling Men's Middleweight, Greco-Roman",18 168 | 167,"Athletics Men's 3,000 metres Steeplechase",7 169 | 168,"Wrestling Men's Middleweight, Freestyle",18 170 | 169,Swimming Women's 100 metres Backstroke,9 171 | 170,Swimming Women's 200 metres Backstroke,9 172 | 171,Swimming Women's 4 x 100 metres Medley Relay,9 173 | 172,"Wrestling Men's Light-Heavyweight, Freestyle",18 174 | 173,Modern Pentathlon Men's Team,33 175 | 174,Boxing Men's Bantamweight,27 176 | 175,Athletics Women's 200 metres,7 177 | 176,Table Tennis Women's Singles,40 178 | 177,Table Tennis Women's Doubles,40 179 | 178,Shooting Men's Skeet,26 180 | 179,Swimming Women's 50 metres Freestyle,9 181 | 180,"Shooting Men's Small-Bore Rifle, Three Positions, 50 metres",26 182 | 181,Athletics Men's Triple Jump,7 183 | 182,Weightlifting Women's Lightweight,17 184 | 183,Athletics Women's Long Jump,7 185 | 184,"Fencing Women's epee, Individual",24 186 | 185,Swimming Men's 200 metres Freestyle,9 187 | 186,Swimming Men's 4 x 100 metres Freestyle Relay,9 188 | 187,Swimming Men's 200 metres Backstroke,9 189 | 188,Swimming Men's 200 metres Individual Medley,9 190 | 189,Swimming Men's 400 metres Individual Medley,9 191 | 190,Badminton Women's Singles,10 192 | 191,Boxing Men's Light-Middleweight,27 193 | 192,Tennis Men's Singles,32 194 | 193,"Wrestling Men's Bantamweight, Freestyle",18 195 | 194,"Wrestling Men's Flyweight, Freestyle",18 196 | 195,"Athletics Women's 5,000 metres",7 197 | 196,Weightlifting Women's Light-Heavyweight,17 198 | 197,Weightlifting Women's Heavyweight,17 199 | 198,Athletics Men's Discus Throw,7 200 | 199,Taekwondo Men's Featherweight,28 201 | 200,Taekwondo Men's Welterweight,28 202 | 201,Judo Men's Heavyweight,2 203 | 202,Cycling Men's Sprint,29 204 | 203,Bobsleigh Men's Two,23 205 | 204,"Wrestling Men's Lightweight, Freestyle",18 206 | 205,Nordic Combined Men's Team,41 207 | 206,Nordic Combined Men's Individual,41 208 | 207,Baseball Men's Baseball,42 209 | 208,Rowing Men's Coxed Fours,22 210 | 209,Cycling Men's 100 kilometres Team Time Trial,29 211 | 210,Rhythmic Gymnastics Women's Group,43 212 | 211,"Art Competitions Mixed Architecture, Designs For Town Planning",14 213 | 212,"Art Competitions Mixed Architecture, Architectural Designs",14 214 | 213,Gymnastics Women's Individual All-Around,13 215 | 214,Gymnastics Women's Team All-Around,13 216 | 215,Gymnastics Women's Floor Exercise,13 217 | 216,Gymnastics Women's Horse Vault,13 218 | 217,Gymnastics Women's Uneven Bars,13 219 | 218,Gymnastics Women's Balance Beam,13 220 | 219,Diving Women's Springboard,30 221 | 220,Diving Women's Synchronized Springboard,30 222 | 221,"Athletics Women's 10,000 metres",7 223 | 222,Sailing Mixed 7 metres,11 224 | 223,Judo Women's Half-Middleweight,2 225 | 224,Athletics Men's Decathlon,7 226 | 225,Biathlon Men's 10 kilometres Sprint,12 227 | 226,Biathlon Men's 20 kilometres,12 228 | 227,Biathlon Men's 4 x 7.5 kilometres Relay,12 229 | 228,Freestyle Skiing Men's Moguls,44 230 | 229,"Wrestling Men's Middleweight A, Greco-Roman",18 231 | 230,Athletics Women's Discus Throw,7 232 | 231,Swimming Women's 4 x 100 metres Freestyle Relay,9 233 | 232,"Athletics Women's 1,500 metres",7 234 | 233,"Shooting Women's Air Pistol, 10 metres",26 235 | 234,"Shooting Women's Sporting Pistol, 25 metres",26 236 | 235,"Canoeing Men's Kayak Doubles, 500 metres",31 237 | 236,"Canoeing Men's Kayak Singles, 500 metres",31 238 | 237,"Canoeing Men's Kayak Singles, 1,000 metres",31 239 | 238,"Shooting Men's Running Target, 50 metres",26 240 | 239,Judo Women's Half-Heavyweight,2 241 | 240,Athletics Women's Pole Vault,7 242 | 241,Rugby Sevens Women's Rugby Sevens,45 243 | 242,Table Tennis Men's Team,40 244 | 243,Figure Skating Mixed Pairs,34 245 | 244,Freestyle Skiing Men's Aerials,44 246 | 245,Rowing Women's Coxed Eights,22 247 | 246,Athletics Women's 4 x 400 metres Relay,7 248 | 247,Alpine Skiing Women's Giant Slalom,15 249 | 248,Alpine Skiing Women's Super G,15 250 | 249,Cross Country Skiing Women's 5 kilometres,6 251 | 250,Cross Country Skiing Women's 10 kilometres,6 252 | 251,Cross Country Skiing Women's 20 kilometres,6 253 | 252,"Cycling Men's 1,000 metres Time Trial",29 254 | 253,"Cycling Men's Individual Pursuit, 4,000 metres",29 255 | 254,"Wrestling Men's Welterweight, Freestyle",18 256 | 255,"Wrestling Men's Bantamweight, Greco-Roman",18 257 | 256,Rowing Women's Lightweight Double Sculls,22 258 | 257,Athletics Women's 800 metres,7 259 | 258,Rowing Women's Coxed Quadruple Sculls,22 260 | 259,Biathlon Men's 12.5 kilometres Pursuit,12 261 | 260,Biathlon Mixed 2 x 6 kilometres and 2 x 7.5 kilometres Relay,12 262 | 261,Rhythmic Gymnastics Women's Individual,43 263 | 262,"Canoeing Men's Kayak Singles, Slalom",31 264 | 263,Archery Men's Individual,37 265 | 264,Archery Men's Team,37 266 | 265,"Speed Skating Women's 1,500 metres",5 267 | 266,Speed Skating Women's Team Pursuit 6 laps,5 268 | 267,Cross Country Skiing Men's Sprint,6 269 | 268,Athletics Women's 400 metres,7 270 | 269,Figure Skating Women's Singles,34 271 | 270,"Speed Skating Men's 1,000 metres",5 272 | 271,Trampolining Men's Individual,46 273 | 272,Beach Volleyball Men's Beach Volleyball,47 274 | 273,"Cycling Women's Mountainbike, Cross-Country",29 275 | 274,"Athletics Men's Javelin Throw, Both Hands",7 276 | 275,Triathlon Women's Olympic Distance,48 277 | 276,Gymnastics Women's Team Portable Apparatus,13 278 | 277,"Cycling Men's Mountainbike, Cross-Country",29 279 | 278,Athletics Women's 400 metres Hurdles,7 280 | 279,Diving Men's Springboard,30 281 | 280,"Wrestling Men's Featherweight, Greco-Roman",18 282 | 281,Table Tennis Men's Singles,40 283 | 282,Art Competitions Mixed Painting,14 284 | 283,Cross Country Skiing Women's 3 x 5 kilometres Relay,6 285 | 284,Judo Men's Open Class,2 286 | 285,Rowing Women's Quadruple Sculls,22 287 | 286,"Gymnastics Men's Team All-Around, Swedish System",13 288 | 287,Nordic Combined Men's Sprint,41 289 | 288,Athletics Women's Pentathlon,7 290 | 289,"Art Competitions Mixed Painting, Unknown Event",14 291 | 290,"Cycling Men's Team Pursuit, 4,000 metres",29 292 | 291,Weightlifting Women's Middleweight,17 293 | 292,"Swimming Men's 1,500 metres Freestyle",9 294 | 293,"Wrestling Women's Light-Heavyweight, Freestyle",18 295 | 294,Swimming Women's 100 metres Freestyle,9 296 | 295,"Equestrianism Men's Jumping, Individual",25 297 | 296,"Equestrianism Men's Jumping, Team",25 298 | 297,"Equestrianism Men's Three-Day Event, Individual",25 299 | 298,"Equestrianism Men's Three-Day Event, Team",25 300 | 299,Alpine Skiing Women's Combined,15 301 | 300,Athletics Women's High Jump,7 302 | 301,"Ski Jumping Men's Normal Hill, Individual",49 303 | 302,"Canoeing Women's Kayak Fours, 500 metres",31 304 | 303,Ice Hockey Women's Ice Hockey,8 305 | 304,Sailing Men's One Person Dinghy,11 306 | 305,Trampolining Women's Individual,46 307 | 306,Curling Men's Curling,50 308 | 307,Art Competitions Mixed Literature,14 309 | 308,Judo Men's Middleweight,2 310 | 309,Biathlon Women's 15 kilometres,12 311 | 310,Biathlon Women's 3 x 7.5 kilometres Relay,12 312 | 311,Biathlon Women's 4 x 7.5 kilometres Relay,12 313 | 312,Judo Men's Half-Lightweight,2 314 | 313,"Fencing Women's Foil, Team",24 315 | 314,Swimming Women's 200 metres Butterfly,9 316 | 315,Swimming Women's 400 metres Individual Medley,9 317 | 316,Golf Men's Individual,35 318 | 317,Athletics Men's Standing High Jump,7 319 | 318,Athletics Men's Standing Long Jump,7 320 | 319,Athletics Men's 20 kilometres Walk,7 321 | 320,Swimming Men's 220 yard Freestyle,9 322 | 321,Swimming Men's 880 yard Freestyle,9 323 | 322,Swimming Men's One Mile Freestyle,9 324 | 323,Swimming Men's 4 x 50 Yard Freestyle Relay,9 325 | 324,Swimming Men's Plunge For Distance,9 326 | 325,"Shooting Men's Free Rifle, Three Positions, 300 metres",26 327 | 326,"Shooting Men's Military Rifle, Three Positions, 300 metres",26 328 | 327,"Shooting Men's Military Rifle, Any Position, 600 metres",26 329 | 328,"Shooting Men's Military Rifle, 200, 400, 500 and 600 metres, Team",26 330 | 329,"Shooting Men's Military Rifle, Prone, 300 metres",26 331 | 330,Judo Men's Half-Heavyweight,2 332 | 331,Archery Women's Team,37 333 | 332,Athletics Men's 50 kilometres Walk,7 334 | 333,Rowing Women's Double Sculls,22 335 | 334,Sailing Mixed 6 metres,11 336 | 335,Boxing Men's Light-Heavyweight,27 337 | 336,Boxing Women's Flyweight,27 338 | 337,Athletics Women's 100 metres Hurdles,7 339 | 338,"Athletics Men's Discus Throw, Greek Style",7 340 | 339,Curling Women's Curling,50 341 | 340,Sailing Mixed One Person Dinghy,11 342 | 341,"Wrestling Women's Heavyweight, Freestyle",18 343 | 342,Badminton Mixed Doubles,10 344 | 343,"Fencing Women's Foil, Individual",24 345 | 344,Sailing Mixed Two Person Keelboat,11 346 | 345,"Shooting Men's Military Rifle, 300 metres and 600 metres, Prone, Team",26 347 | 346,Table Tennis Men's Doubles,40 348 | 347,"Wrestling Men's Light-Flyweight, Freestyle",18 349 | 348,"Wrestling Women's Featherweight, Freestyle",18 350 | 349,Swimming Women's 200 metres Freestyle,9 351 | 350,Swimming Women's 400 metres Freestyle,9 352 | 351,Swimming Women's 200 metres Individual Medley,9 353 | 352,Sailing Men's Windsurfer,11 354 | 353,Freestyle Skiing Men's Slopestyle,44 355 | 354,"Shooting Men's Running Target, Single Shot",26 356 | 355,"Shooting Men's Running Target, Double Shot",26 357 | 356,Rugby Sevens Men's Rugby Sevens,45 358 | 357,"Wrestling Women's Lightweight, Freestyle",18 359 | 358,Modern Pentathlon Women's Individual,33 360 | 359,"Canoeing Men's Canadian Doubles, Slalom",31 361 | 360,Judo Women's Half-Lightweight,2 362 | 361,Diving Women's Plain High,30 363 | 362,"Equestrianism Men's Dressage, Individual",25 364 | 363,"Equestrianism Men's Dressage, Team",25 365 | 364,"Tennis Women's Singles, Covered Courts",32 366 | 365,Diving Men's Plain High,30 367 | 366,"Shooting Mixed Small-Bore Rifle, Three Positions, 50 metres",26 368 | 367,"Shooting Mixed Small-Bore Rifle, Prone, 50 metres",26 369 | 368,Swimming Women's 800 metres Freestyle,9 370 | 369,Sailing Women's Two Person Dinghy,11 371 | 370,Alpine Skiing Women's Downhill,15 372 | 371,"Shooting Men's Free Pistol, 50 metres, Team",26 373 | 372,"Shooting Men's Free Rifle, Three Positions, 300 metres, Team",26 374 | 373,"Shooting Men's Military Rifle, Prone, 300 metres, Team",26 375 | 374,"Shooting Men's Military Rifle, Prone, 600 metres, Team",26 376 | 375,"Shooting Men's Military Rifle, Standing, 300 metres, Team",26 377 | 376,"Shooting Men's Free Rifle, Prone, 600 metres",26 378 | 377,"Shooting Men's Free Rifle, 400, 600 and 800 metres, Team",26 379 | 378,Rowing Men's Single Sculls,22 380 | 379,"Cycling Men's Tandem Sprint, 2,000 metres",29 381 | 380,Freestyle Skiing Women's Halfpipe,44 382 | 381,Athletics Women's Heptathlon,7 383 | 382,Cycling Men's Points Race,29 384 | 383,Synchronized Swimming Women's Solo,39 385 | 384,"Equestrianism Mixed Dressage, Individual",25 386 | 385,"Equestrianism Mixed Dressage, Team",25 387 | 386,Cross Country Skiing Men's 18 kilometres,6 388 | 387,Swimming Men's 100 metres Breaststroke,9 389 | 388,Figure Skating Mixed Ice Dancing,34 390 | 389,"Shooting Mixed Free Pistol, 50 metres",26 391 | 390,Sailing Women's Skiff,11 392 | 391,"Canoeing Men's Kayak Doubles, 10,000 metres",31 393 | 392,Triathlon Men's Olympic Distance,48 394 | 393,Sailing Women's One Person Dinghy,11 395 | 394,Cross Country Skiing Women's 30 kilometres,6 396 | 395,Cross Country Skiing Women's 15 km Skiathlon,6 397 | 396,Rowing Men's 17-Man Naval Rowing Boats,22 398 | 397,Beach Volleyball Women's Beach Volleyball,47 399 | 398,Weightlifting Men's Super-Heavyweight,17 400 | 399,Rowing Men's Lightweight Coxless Fours,22 401 | 400,"Wrestling Men's Light-Flyweight, Greco-Roman",18 402 | 401,"Canoeing Men's Canadian Singles, 1,000 metres",31 403 | 402,Sailing Mixed 5.5 metres,11 404 | 403,"Equestrianism Mixed Jumping, Team",25 405 | 404,Diving Men's Synchronized Platform,30 406 | 405,Snowboarding Men's Halfpipe,51 407 | 406,"Canoeing Women's Kayak Singles, Slalom",31 408 | 407,Weightlifting Women's Flyweight,17 409 | 408,Swimming Women's 100 metres Breaststroke,9 410 | 409,Swimming Women's 200 metres Breaststroke,9 411 | 410,"Wrestling Men's Middleweight B, Greco-Roman",18 412 | 411,Athletics Men's Stone Throw,7 413 | 412,"Athletics Men's Javelin Throw, Freestyle",7 414 | 413,Athletics Men's Pentathlon Ancient,7 415 | 414,"Shooting Women's Small-Bore Rifle, Three Positions, 50 metres",26 416 | 415,Swimming Women's 100 metres Butterfly,9 417 | 416,Weightlifting Men's Heavyweight I,17 418 | 417,"Athletics Women's 3,000 metres Steeplechase",7 419 | 418,"Athletics Men's Shot Put, Both Hands",7 420 | 419,"Ski Jumping Men's Large Hill, Individual",49 421 | 420,"Ski Jumping Men's Large Hill, Team",49 422 | 421,Shooting Women's Trap,26 423 | 422,Badminton Men's Doubles,10 424 | 423,Swimming Women's 4 x 200 metres Freestyle Relay,9 425 | 424,Athletics Men's 10 kilometres Walk,7 426 | 425,Athletics Women's 20 kilometres Walk,7 427 | 426,Athletics Women's 80 metres Hurdles,7 428 | 427,Sailing Men's One Person Heavyweight Dinghy,11 429 | 428,Freestyle Skiing Women's Aerials,44 430 | 429,"Art Competitions Mixed Painting, Paintings",14 431 | 430,"Tennis Mixed Doubles, Covered Courts",32 432 | 431,Cycling Men's Madison,29 433 | 432,"Art Competitions Mixed Sculpturing, Statues",14 434 | 433,Rugby Men's Rugby,52 435 | 434,Weightlifting Men's Heavyweight II,17 436 | 435,"Canoeing Women's Kayak Doubles, 500 metres",31 437 | 436,"Short Track Speed Skating Men's 5,000 metres Relay",53 438 | 437,Cycling Men's Individual Time Trial,29 439 | 438,Judo Women's Heavyweight,2 440 | 439,"Canoeing Men's Kayak Doubles, 1,000 metres",31 441 | 440,"Gymnastics Men's Individual All-Around, 5 Events",13 442 | 441,"Wrestling Men's Super-Heavyweight, Freestyle",18 443 | 442,Biathlon Women's 10 kilometres Pursuit,12 444 | 443,Biathlon Women's 12.5 kilometres Mass Start,12 445 | 444,Biathlon Women's 4 x 6 kilometres Relay,12 446 | 445,"Fencing Women's Sabre, Team",24 447 | 446,Shooting Men's Double Trap,26 448 | 447,Weightlifting Men's Bantamweight,17 449 | 448,Taekwondo Men's Heavyweight,28 450 | 449,Sailing Mixed Windsurfer,11 451 | 450,Taekwondo Women's Welterweight,28 452 | 451,"Shooting Mixed Free Rifle, Three Positions, 300 metres",26 453 | 452,Skeleton Men's Skeleton,54 454 | 453,Cycling Men's 50 kilometres,29 455 | 454,"Shooting Mixed Rapid-Fire Pistol, 25 metres",26 456 | 455,Cycling Men's 333 metres Time Trial,29 457 | 456,Cycling Men's 20 kilometres,29 458 | 457,"Canoeing Men's Kayak Singles, 10,000 metres",31 459 | 458,Sailing Mixed Open,11 460 | 459,Sailing Mixed 1-2 Ton,11 461 | 460,"Canoeing Men's Canadian Singles, Slalom",31 462 | 461,Luge Men's Singles,19 463 | 462,Luge Mixed Men's Doubles,19 464 | 463,Sailing Mixed Multihull,11 465 | 464,Badminton Women's Doubles,10 466 | 465,"Speed Skating Women's 3,000 metres",5 467 | 466,Cross Country Skiing Women's 5/10 kilometres Pursuit,6 468 | 467,Cross Country Skiing Women's 4 x 5 kilometres Relay,6 469 | 468,Cross Country Skiing Women's 15 kilometres,6 470 | 469,Cross Country Skiing Women's 5/5 kilometres Pursuit,6 471 | 470,Diving Women's Synchronized Platform,30 472 | 471,Athletics Women's Triple Jump,7 473 | 472,Skeleton Women's Skeleton,54 474 | 473,Bobsleigh Men's Four/Five,23 475 | 474,"Art Competitions Mixed Painting, Drawings And Water Colors",14 476 | 475,"Shooting Men's Dueling Pistol, 30 metres",26 477 | 476,Boxing Women's Lightweight,27 478 | 477,Cycling Women's BMX,29 479 | 478,"Canoeing Men's Kayak Doubles, 200 metres",31 480 | 479,"Fencing Men's Sabre, Masters, Individual",24 481 | 480,Lacrosse Men's Lacrosse,55 482 | 481,"Canoeing Women's Kayak Singles, 500 metres",31 483 | 482,Athletics Women's 10 kilometres Walk,7 484 | 483,Sailing Mixed 12 metres,11 485 | 484,Judo Women's Extra-Lightweight,2 486 | 485,Diving Men's Synchronized Springboard,30 487 | 486,"Rowing Men's Coxed Fours, Outriggers",22 488 | 487,Gymnastics Men's Rope Climbing,13 489 | 488,Sailing Mixed Two Person Dinghy,11 490 | 489,"Art Competitions Mixed Architecture, Unknown Event",14 491 | 490,"Archery Men's Target Archery, 28 metres, Team",37 492 | 491,"Archery Men's Target Archery, 33 metres, Team",37 493 | 492,"Archery Men's Target Archery, 50 metres, Team",37 494 | 493,"Short Track Speed Skating Women's 3,000 metres Relay",53 495 | 494,Freestyle Skiing Women's Moguls,44 496 | 495,Short Track Speed Skating Men's 500 metres,53 497 | 496,"Shooting Men's Running Target, 10 metres",26 498 | 497,Polo Men's Polo,56 499 | 498,"Rowing Men's Coxed Fours, Inriggers",22 500 | 499,Cycling Men's BMX,29 501 | 500,Art Competitions Mixed Sculpturing,14 502 | 501,"Athletics Men's Cross-Country, Individual",7 503 | 502,"Athletics Men's Cross-Country, Team",7 504 | 503,Sailing Mixed 40 metres,11 505 | 504,Cross Country Skiing Men's 10/10 kilometres Pursuit,6 506 | 505,"Ski Jumping Women's Normal Hill, Individual",49 507 | 506,"Short Track Speed Skating Men's 1,000 metres",53 508 | 507,"Short Track Speed Skating Men's 1,500 metres",53 509 | 508,Gymnastics Men's Club Swinging,13 510 | 509,Tennis Women's Singles,32 511 | 510,Tennis Mixed Doubles,32 512 | 511,Tennis Women's Doubles,32 513 | 512,Judo Women's Middleweight,2 514 | 513,Judo Women's Lightweight,2 515 | 514,Cross Country Skiing Men's Team Sprint,6 516 | 515,Snowboarding Women's Halfpipe,51 517 | 516,"Canoeing Women's Kayak Singles, 200 metres",31 518 | 517,Canoeing Men's Kayak Relay 4 x 500 metres,31 519 | 518,"Athletics Men's 3,000 metres, Team",7 520 | 519,Cross Country Skiing Women's Sprint,6 521 | 520,"Shooting Men's Small-Bore Rifle, Prone, 50 and 100 yards",26 522 | 521,"Shooting Men's Small-Bore Rifle, 50 and 100 yards, Team",26 523 | 522,"Shooting Men's Small-Bore Rifle, Disappearing Target, 25 yards",26 524 | 523,"Shooting Men's Small-Bore Rifle, Moving Target, 25 yards",26 525 | 524,"Shooting Men's Military Pistol, Team",26 526 | 525,Rowing Women's Coxed Fours,22 527 | 526,"Weightlifting Men's Unlimited, One Hand",17 528 | 527,"Canoeing Men's Canadian Singles, 500 metres",31 529 | 528,"Fencing Men's Foil, Masters, Individual",24 530 | 529,"Fencing Men's epee, Masters, Individual",24 531 | 530,"Gymnastics Men's Individual All-Around, Field Sports",13 532 | 531,"Gymnastics Men's Individual All-Around, Apparatus Work",13 533 | 532,"Art Competitions Mixed Music, Compositions For Solo Or Chorus",14 534 | 533,"Fencing Women's epee, Team",24 535 | 534,"Swimming Men's 4,000 metres Freestyle",9 536 | 535,Swimming Men's Underwater Swimming,9 537 | 536,Sailing Mixed Skiff,11 538 | 537,"Shooting Men's Military Rifle, 200/500/600/800/900/1,000 Yards, Team",26 539 | 538,"Shooting Men's Running Target, Single And Double Shot",26 540 | 539,"Shooting Men's Small-Bore Rifle, Any Position, 50 metres",26 541 | 540,"Shooting Men's Small-Bore Rifle, Disappearing Target, 25 metres",26 542 | 541,Swimming Women's 10 kilometres Open Water,9 543 | 542,Snowboarding Women's Slopestyle,51 544 | 543,Snowboarding Men's Giant Slalom,51 545 | 544,Snowboarding Men's Parallel Giant Slalom,51 546 | 545,Snowboarding Men's Boardercross,51 547 | 546,Snowboarding Men's Parallel Slalom,51 548 | 547,"Cycling Men's Team Pursuit, 1,980 yards",29 549 | 548,"Cycling Men's 5,000 metres",29 550 | 549,Cycling Men's 100 kilometres,29 551 | 550,Cricket Men's Cricket,57 552 | 551,"Canoeing Men's Canadian Singles, 10,000 metres",31 553 | 552,Cross Country Skiing Women's Team Sprint,6 554 | 553,Boxing Women's Middleweight,27 555 | 554,Sailing Men's Skiff,11 556 | 555,Athletics Men's Pentathlon,7 557 | 556,"Swimming Men's 1,200 metres Freestyle",9 558 | 557,Shooting Women's Skeet,26 559 | 558,Biathlon Men's 15 kilometres Mass Start,12 560 | 559,Cross Country Skiing Men's 30 km Skiathlon,6 561 | 560,Cycling Men's 1/4 mile,29 562 | 561,Cycling Men's 1/2 mile,29 563 | 562,Cycling Men's 5 mile,29 564 | 563,Cycling Men's 25 mile,29 565 | 564,"Shooting Men's Small-Bore Rifle, Standing, 50 metres",26 566 | 565,"Shooting Men's Small Bore-Rifle, Standing, 50 metres, Team",26 567 | 566,Speed Skating Men's Team Pursuit 8 laps,5 568 | 567,"Shooting Men's Free Rifle, 1,000 Yards",26 569 | 568,Cycling Women's Team Pursuit,29 570 | 569,"Speed Skating Women's 5,000 metres",5 571 | 570,"Athletics Men's 3,000 metres Walk",7 572 | 571,Snowboarding Women's Boardercross,51 573 | 572,"Shooting Mixed Running Target, 50 metres",26 574 | 573,Luge Mixed Team Relay,19 575 | 574,Cycling Women's Individual Time Trial,29 576 | 575,"Fencing Women's Sabre, Individual",24 577 | 576,"Fencing Men's Sabre, Individual, Three Hits",24 578 | 577,Archery Women's Double National Round,37 579 | 578,Cycling Men's Omnium,29 580 | 579,Equestrianism Mixed Hacks And Hunter Combined,25 581 | 580,Sailing Mixed 10 metres,11 582 | 581,"Shooting Men's Trap, Team",26 583 | 582,"Cycling Women's Individual Pursuit, 3,000 metres",29 584 | 583,Cycling Women's Points Race,29 585 | 584,Sailing Men's Two Person Keelboat,11 586 | 585,Cycling Men's Keirin,29 587 | 586,Cycling Men's Team Sprint,29 588 | 587,Athletics Men's 5 mile,7 589 | 588,"Shooting Men's Running Target, Single Shot, Team",26 590 | 589,Bobsleigh Women's Two,23 591 | 590,Racquets Men's Singles,58 592 | 591,Racquets Men's Doubles,58 593 | 592,"Art Competitions Mixed Literature, Lyric Works",14 594 | 593,Motorboating Mixed A-Class Open,59 595 | 594,Archery Men's Continental Style,37 596 | 595,Military Ski Patrol Men's Military Ski Patrol,60 597 | 596,"Art Competitions Mixed Painting, Graphic Arts",14 598 | 597,"Wrestling Women's Flyweight, Freestyle",18 599 | 598,"Art Competitions Mixed Literature, Unknown Event",14 600 | 599,Sailing Mixed 0.5-1 Ton,11 601 | 600,"Art Competitions Mixed Painting, Applied Arts",14 602 | 601,"Croquet Mixed Singles, One Ball",61 603 | 602,Croquet Mixed Doubles,61 604 | 603,"Shooting Men's Running Target, Double Shot, Team",26 605 | 604,"Shooting Men's Free Pistol, 50 yards",26 606 | 605,"Shooting Men's Free Pistol, 50 yards, Team",26 607 | 606,"Fencing Men's epee, Masters and Amateurs, Individual",24 608 | 607,Swimming Men's 10 kilometres Open Water,9 609 | 608,"Art Competitions Mixed Music, Compositions For Orchestra",14 610 | 609,Archery Men's Double York Round,37 611 | 610,"Wrestling Women's Middleweight, Freestyle",18 612 | 611,"Equestrianism Men's Vaulting, Individual",25 613 | 612,Swimming Men's 4 x 250 metres Freestyle Relay,9 614 | 613,Freestyle Skiing Women's Slopestyle,44 615 | 614,Table Tennis Women's Team,40 616 | 615,Athletics Women's Hammer Throw,7 617 | 616,"Canoeing Men's Kayak Singles, 200 metres",31 618 | 617,Short Track Speed Skating Women's 500 metres,53 619 | 618,Shooting Women's Double Trap,26 620 | 619,Rowing Men's 6-Man Naval Rowing Boats,22 621 | 620,Art Competitions Mixed Music,14 622 | 621,"Shooting Men's Free Rifle, Kneeling, 300 metres",26 623 | 622,"Shooting Men's Free Rifle, Prone, 300 metres",26 624 | 623,"Shooting Men's Free Rifle, Standing, 300 metres",26 625 | 624,"Short Track Speed Skating Women's 1,000 metres",53 626 | 625,"Athletics Men's 3,200 metres Steeplechase",7 627 | 626,Rowing Women's Coxless Fours,22 628 | 627,Freestyle Skiing Women's Ski Cross,44 629 | 628,Freestyle Skiing Men's Ski Cross,44 630 | 629,"Tennis Men's Doubles, Covered Courts",32 631 | 630,"Tennis Men's Singles, Covered Courts",32 632 | 631,Cycling Men's 25 kilometres,29 633 | 632,"Nordic Combined Men's Normal Hill / 10 km, Individual",41 634 | 633,"Nordic Combined Men's Large Hill / 10 km, Individual",41 635 | 634,"Shooting Men's Military Rifle, 200 metres",26 636 | 635,"Short Track Speed Skating Women's 1,500 metres",53 637 | 636,Athletics Men's Standing Triple Jump,7 638 | 637,Rowing Men's Coxed Pairs 1 kilometres,22 639 | 638,"Shooting Men's Military Pistol, 30 metres",26 640 | 639,Cycling Women's Keirin,29 641 | 640,"Archery Men's Au Cordon Dore, 50 metres",37 642 | 641,Swimming Women's 300 metres Freestyle,9 643 | 642,Snowboarding Women's Giant Slalom,51 644 | 643,"Canoeing Men's Canadian Singles, 200 metres",31 645 | 644,Sailing Mixed 30 metres,11 646 | 645,"Athletics Men's 4,000 metres Steeplechase",7 647 | 646,"Athletics Men's 5,000 metres, Team",7 648 | 647,Snowboarding Men's Slopestyle,51 649 | 648,Rowing Men's Coxed Pairs 1 mile,22 650 | 649,Art Competitions Mixed Unknown Event,14 651 | 650,Cycling Women's Omnium,29 652 | 651,Freestyle Skiing Men's Halfpipe,44 653 | 652,Swimming Men's 200 metres Obstacle Course,9 654 | 653,Swimming Men's 200 metres Team Swimming,9 655 | 654,Sailing Mixed 12 foot,11 656 | 655,"Art Competitions Mixed Music, Instrumental And Chamber",14 657 | 656,"Art Competitions Mixed Music, Vocals",14 658 | 657,"Art Competitions Mixed Literature, Dramatic Works",14 659 | 658,Jeu De Paume Men's Singles,62 660 | 659,Sailing Mixed 10-20 Ton,11 661 | 660,Cycling Men's 1/3 mile,29 662 | 661,Cycling Men's 1 mile,29 663 | 662,Cycling Men's 2 mile,29 664 | 663,"Art Competitions Mixed Sculpturing, Medals And Plaques",14 665 | 664,"Athletics Men's 1,600 metres Medley Relay",7 666 | 665,"Croquet Mixed Singles, Two Balls",61 667 | 666,"Canoeing Men's Folding Kayak Doubles, 10 kilometres",31 668 | 667,Athletics Men's 60 metres,7 669 | 668,Snowboarding Women's Parallel Giant Slalom,51 670 | 669,Sailing Mixed 2-3 Ton,11 671 | 670,Speed Skating Men's Allround,5 672 | 671,"Shooting Men's Military Rifle, Prone, 600 metres",26 673 | 672,"Canoeing Men's Canadian Doubles, 10,000 metres",31 674 | 673,Snowboarding Women's Parallel Slalom,51 675 | 674,"Shooting Men's Dueling Pistol, 30 metres, Team",26 676 | 675,"Gymnastics Men's Parallel Bars, Teams",13 677 | 676,"Gymnastics Men's Horizontal Bar, Teams",13 678 | 677,"Shooting Men's Small-Bore Rifle, Disappearing Target, 25 metres, Team",26 679 | 678,"Art Competitions Mixed Sculpturing, Medals And Reliefs",14 680 | 679,"Athletics Men's 1,500 metres Walk",7 681 | 680,"Athletics Men's 3 mile, Team",7 682 | 681,"Art Competitions Mixed Sculpturing, Medals",14 683 | 682,"Shooting Men's Military Rifle, Kneeling Or Standing, 300 metres",26 684 | 683,"Equestrianism Men's Vaulting, Team",25 685 | 684,"Shooting Men's Free Rifle, Any Position, 300 metres",26 686 | 685,"Shooting Men's Military Rifle, 1873-1874 Gras Model, Kneeling Or Standing, 200 metres",26 687 | 686,Swimming Men's 100 Yard Backstroke,9 688 | 687,Swimming Men's 440 Yard Breaststroke,9 689 | 688,"Art Competitions Mixed Literature, Epic Works",14 690 | 689,Art Competitions Mixed Architecture,14 691 | 690,"Athletics Men's 3,500 metres Walk",7 692 | 691,Roque Men's Singles,63 693 | 692,Gymnastics Men's Side Horse,13 694 | 693,Alpinism Mixed Alpinism,64 695 | 694,Archery Men's Double American Round,37 696 | 695,Archery Men's Team Round,37 697 | 696,"Archery Men's Target Archery, 33 metres, Individual",37 698 | 697,"Archery Men's Target Archery, 50 metres, Individual",37 699 | 698,"Swimming Men's 1,000 metres Freestyle",9 700 | 699,Athletics Men's 10 mile Walk,7 701 | 700,"Athletics Men's Discus Throw, Both Hands",7 702 | 701,Golf Men's Team,35 703 | 702,Sailing Mixed 0-0.5 Ton,11 704 | 703,Sailing Mixed 20+ Ton,#N/A 705 | 704,Cycling Women's Team Sprint,29 706 | 705,"Weightlifting Men's Unlimited, Two Hands",17 707 | 706,"Shooting Men's Free Pistol, 25 metres",26 708 | 707,"Shooting Men's Military Revolver, 1873-1874 Gras Model, 20 metres",26 709 | 708,"Shooting Men's Military Revolver, 20 metres",26 710 | 709,Shooting Men's Dueling Pistol Au Vise 20 metres,26 711 | 710,"Shooting Men's Dueling Pistol Au Commandement, 25 metres",26 712 | 711,"Shooting Men's Small-Bore Rifle, Prone, 50 metres, Team",26 713 | 712,Sailing Mixed 6.5 metres,11 714 | 713,Athletics Men's 200 metres Hurdles,7 715 | 714,Athletics Men's 56-pound Weight Throw,7 716 | 715,Equestrianism Mixed Four-In-Hand Competition,25 717 | 716,"Athletics Men's 2,500 metres Steeplechase",7 718 | 717,"Art Competitions Mixed Music, Unknown Event",14 719 | 718,Athletics Men's All-Around Championship,7 720 | 719,"Archery Men's Pole Archery, Small Birds, Individual",37 721 | 720,"Archery Men's Pole Archery, Large Birds, Individual",37 722 | 721,"Archery Men's Pole Archery, Small Birds, Team",37 723 | 722,"Archery Men's Pole Archery, Large Birds, Team",37 724 | 723,"Athletics Men's 2,590 metres Steeplechase",7 725 | 724,Archery Women's Double Columbia Round,37 726 | 725,"Athletics Men's 4 mile, Team",7 727 | 726,Figure Skating Men's Special Figures,34 728 | 727,"Shooting Men's Military Rifle, Standing, 300 metres",26 729 | 728,Swimming Men's 50 yard Freestyle,9 730 | 729,Swimming Men's 100 yard Freestyle,9 731 | 730,Swimming Men's 440 yard Freestyle,9 732 | 731,Basque Pelota Men's Two-Man Teams With Cesta,65 733 | 732,"Shooting Men's Trap, Single Shot, 16 metres",26 734 | 733,"Shooting Men's Trap, Double Shot, 14 metres",26 735 | 734,Equestrianism Mixed Long Jump,25 736 | 735,"Canoeing Men's Folding Kayak Singles, 10 kilometres",31 737 | 736,"Shooting Men's Free Pistol, 30 metres",26 738 | 737,"Shooting Men's Military Pistol, 25 metres",26 739 | 738,Swimming Men's 100 metres Freestyle For Sailors,9 740 | 739,Archery Men's Sur La Perche a La Herse,37 741 | 740,Sailing Mixed 3-10 Ton,11 742 | 741,"Gymnastics Men's Individual All-Around, 4 Events",13 743 | 742,"Wrestling Men's Unlimited Class, Greco-Roman",18 744 | 743,Motorboating Mixed B-Class (Under 60 Feet),#N/A 745 | 744,Motorboating Mixed C-Class,59 746 | 745,"Cycling Men's 10,000 metres",29 747 | 746,"Art Competitions Mixed Sculpturing, Reliefs",14 748 | 747,"Shooting Men's Muzzle-Loading Pistol, 25 metres",26 749 | 748,Equestrianism Mixed High Jump,25 750 | 749,Archery Men's Sur La Perche a La Pyramide,37 751 | 750,"Fencing Men's Single Sticks, Individual",24 752 | 751,Gymnastics Men's Tumbling,13 753 | 752,Shooting Men's Unknown Event,26 754 | 753,Sailing Mixed 18 foot,11 755 | 754,Archery Men's Unknown Event,37 756 | 755,"Archery Men's Au Chapelet, 50 metres",37 757 | 756,Archery Men's Championnat Du Monde,37 758 | 757,Archery Women's Team Round,37 759 | 758,"Wrestling Men's All-Around, Greco-Roman",18 760 | 759,Cycling Men's 12-Hours Race,29 761 | 760,Swimming Men's 500 metres Freestyle,9 762 | 761,Weightlifting Men's All-Around Dumbbell Contest,17 763 | 762,"Archery Men's Au Chapelet, 33 metres",37 764 | 763,"Archery Men's Au Cordon Dore, 33 metres",37 765 | 764,"Archery Men's Target Archery, 28 metres, Individual",37 766 | 765,Aeronautics Mixed Aeronautics,66 767 | -------------------------------------------------------------------------------- /codes/python/files/juegos.csv: -------------------------------------------------------------------------------- 1 | ,nombre_juego,annio,temporada,ciudad 2 | 1,1896 Verano,1896,Verano,Athina 3 | 2,1900 Verano,1900,Verano,Paris 4 | 3,1904 Verano,1904,Verano,St. Louis 5 | 4,1906 Verano,1906,Verano,Athina 6 | 5,1908 Verano,1908,Verano,London 7 | 6,1912 Verano,1912,Verano,Stockholm 8 | 7,1920 Verano,1920,Verano,Antwerpen 9 | 8,1924 Invierno,1924,Invierno,Chamonix 10 | 9,1924 Verano,1924,Verano,Paris 11 | 10,1928 Invierno,1928,Invierno,Sankt Moritz 12 | 11,1928 Verano,1928,Verano,Amsterdam 13 | 12,1932 Invierno,1932,Invierno,Lake Placid 14 | 13,1932 Verano,1932,Verano,Los Angeles 15 | 14,1936 Invierno,1936,Invierno,Garmisch-Partenkirchen 16 | 15,1936 Verano,1936,Verano,Berlin 17 | 16,1948 Invierno,1948,Invierno,Sankt Moritz 18 | 17,1948 Verano,1948,Verano,London 19 | 18,1952 Invierno,1952,Invierno,Oslo 20 | 19,1952 Verano,1952,Verano,Helsinki 21 | 20,1956 Invierno,1956,Invierno,Cortina d'Ampezzo 22 | 21,1956 Verano,1956,Verano,Melbourne 23 | 22,1960 Invierno,1960,Invierno,Squaw Valley 24 | 23,1960 Verano,1960,Verano,Roma 25 | 24,1964 Invierno,1964,Invierno,Innsbruck 26 | 25,1964 Verano,1964,Verano,Tokyo 27 | 26,1968 Invierno,1968,Invierno,Grenoble 28 | 27,1968 Verano,1968,Verano,Mexico City 29 | 28,1972 Invierno,1972,Invierno,Sapporo 30 | 29,1972 Verano,1972,Verano,Munich 31 | 30,1976 Invierno,1976,Invierno,Innsbruck 32 | 31,1976 Verano,1976,Verano,Montreal 33 | 32,1980 Invierno,1980,Invierno,Lake Placid 34 | 33,1980 Verano,1980,Verano,Moskva 35 | 34,1984 Invierno,1984,Invierno,Sarajevo 36 | 35,1984 Verano,1984,Verano,Los Angeles 37 | 36,1988 Invierno,1988,Invierno,Calgary 38 | 37,1988 Verano,1988,Verano,Seoul 39 | 38,1992 Invierno,1992,Invierno,Albertville 40 | 39,1992 Verano,1992,Verano,Barcelona 41 | 40,1994 Invierno,1994,Invierno,Lillehammer 42 | 41,1996 Verano,1996,Verano,Atlanta 43 | 42,1998 Invierno,1998,Invierno,Nagano 44 | 43,2000 Verano,2000,Verano,Sydney 45 | 44,2002 Invierno,2002,Invierno,Salt Lake City 46 | 45,2004 Verano,2004,Verano,Athina 47 | 46,2006 Invierno,2006,Invierno,Torino 48 | 47,2008 Verano,2008,Verano,Beijing 49 | 48,2010 Invierno,2010,Invierno,Vancouver 50 | 49,2012 Verano,2012,Verano,London 51 | 50,2014 Invierno,2014,Invierno,Sochi 52 | 51,2016 Verano,2016,Verano,Rio de Janeiro 53 | -------------------------------------------------------------------------------- /codes/python/files/modelo_relacional.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eocode/Docker-Spark-Big-Data/289f8d0ef9222c5df591943c2fea51379388f49a/codes/python/files/modelo_relacional.jpg -------------------------------------------------------------------------------- /codes/python/files/paises.csv: -------------------------------------------------------------------------------- 1 | id,equipo,sigla 2 | 1,30. Februar,AUT 3 | 2,A North American Team,MEX 4 | 3,Acipactli,MEX 5 | 4,Acturus,ARG 6 | 5,Afghanistan,AFG 7 | 6,Akatonbo,IRL 8 | 7,Alain IV,SUI 9 | 8,Albania,ALB 10 | 9,Alcaid,POR 11 | 10,Alcyon-6,FRA 12 | 11,Alcyon-7,FRA 13 | 12,Aldebaran,ITA 14 | 13,Aldebaran II,ITA 15 | 14,Aletta,IRL 16 | 15,Algeria,ALG 17 | 16,Ali-Baba II,SWE 18 | 17,Ali-Baba IV,SUI 19 | 18,Ali-Baba IX,SUI 20 | 19,Ali-Baba VI,SUI 21 | 20,Allegro,FRA 22 | 21,Almaz,URS 23 | 22,Aloha II,SWE 24 | 23,Amateur Athletic Association,AUS 25 | 24,American Samoa,ASA 26 | 25,Amolgavar,ESP 27 | 26,Amstel Amsterdam,NED 28 | 27,Amulet-3,FRA 29 | 28,Amulet-7,FRA 30 | 29,Ancora,GBR 31 | 30,Andorinha,BRA 32 | 31,Andorra,AND 33 | 32,Andromeda,GBR 34 | 33,Angelita,USA 35 | 34,Angerburg,USA 36 | 35,Angola,ANG 37 | 36,Anitra,DEN 38 | 37,Antares,ARG 39 | 38,Antigua and Barbuda,ANT 40 | 39,Antwerpia V,BEL 41 | 40,Apache,NOR 42 | 41,Aphrodite,USA 43 | 42,Arcturus,ARG 44 | 43,Ardilla,ARG 45 | 44,Aretusa,ITA 46 | 45,Argentina,ARG 47 | 46,Argentina-1,ARG 48 | 47,Argentina-2,ARG 49 | 48,Argeste,ITA 50 | 49,Argo II,CAN 51 | 50,Argonaut Rowing Club,CAN 52 | 51,Argus,POR 53 | 52,Ariel,CAN 54 | 53,Ariette-10,FRA 55 | 54,Ariette-8,FRA 56 | 55,Armenia,ARM 57 | 56,Aruba,ARU 58 | 57,Aschenbrodel,GER 59 | 58,Astrid III,FRA 60 | 59,Atalanta Boat Club-1,USA 61 | 60,Atalanta Boat Club-2,USA 62 | 61,Athens-2,GRE 63 | 62,Atlanta,NOR 64 | 63,Augsburg,ITA 65 | 64,Ausonia,ITA 66 | 65,Australasia,ANZ 67 | 66,Australia,AUS 68 | 67,Australia-1,AUS 69 | 68,Australia-2,AUS 70 | 69,Australia-3,AUS 71 | 70,Australia/Great Britain,AUS 72 | 71,Austria,AUT 73 | 72,Austria-1,AUT 74 | 73,Austria-2,AUT 75 | 74,Azerbaijan,AZE 76 | 75,Babe,USA 77 | 76,Baby-1,FRA 78 | 77,Baby-9,FRA 79 | 78,Baccara,SUI 80 | 79,"Bagatelle Polo Club; Paris",FRA 81 | 80,Bahamas,BAH 82 | 81,Bahrain,BRN 83 | 82,Bajazzo,URU 84 | 83,Balaton,HUN 85 | 84,Ballerina IV,SUI 86 | 85,Bamba,ITA 87 | 86,Bangladesh,BAN 88 | 87,Barbados,BAR 89 | 88,Barco Deloro,NED 90 | 89,Barion/Bari-2,ITA 91 | 90,Barrenjoey,AUS 92 | 91,Beatrijs III-1,NED 93 | 92,Beaver,GBR 94 | 93,Belarus,BLR 95 | 94,Belarus-1,BLR 96 | 95,Belarus-2,BLR 97 | 96,Belgium,BEL 98 | 97,Belgium-1,BEL 99 | 98,Belgium-2,BEL 100 | 99,Belgium-3,BEL 101 | 100,Belgium-4,BEL 102 | 101,Belize,BIZ 103 | 102,Bella,FIN 104 | 103,Bellatrix IX,GER 105 | 104,Bellatrix XIII,GER 106 | 105,Bem II,NED 107 | 106,Benin,BEN 108 | 107,Bera,NOR 109 | 108,Berliner Ruderclub,GER 110 | 109,Berliner Ruderclub Sport-Borussia-1,GER 111 | 110,Berliner Ruderverein von 1876-2,GER 112 | 111,Bermuda,BER 113 | 112,Bermudes,BER 114 | 113,Bermudian,BER 115 | 114,Bhutan,BHU 116 | 115,Bim,BAH 117 | 116,Bingo,USA 118 | 117,Bissbi,SWE 119 | 118,"BLO Polo Club; Rugby",USA 120 | 119,Blue Red,ARG 121 | 120,Bluebottle,GBR 122 | 121,Boer Team,RSA 123 | 122,Bohemia,BOH 124 | 123,Bohemia-1,BOH 125 | 124,Bohemia-2,BOH 126 | 125,Bohemia-3,BOH 127 | 126,Bohemia/Great Britain,BOH 128 | 127,Bolivia,BOL 129 | 128,Bona Fide,GBR 130 | 129,Bonaparte,GER 131 | 130,Bonzo,DEN 132 | 131,Boreas,JPN 133 | 132,Boreas-2,NED 134 | 133,Bosnia and Herzegovina,BIH 135 | 134,Boston Archers,USA 136 | 135,Botswana,BOT 137 | 136,Brandenburg,EST 138 | 137,Brat,GBR 139 | 138,Brazil,BRA 140 | 139,Brazil-1,BRA 141 | 140,Brazil-2,BRA 142 | 141,Bremen,FIN 143 | 142,Brentina,USA 144 | 143,Breslau,AUT 145 | 144,Briar,SWE 146 | 145,Brigantia,AUT 147 | 146,British Virgin Islands,IVB 148 | 147,Bronia,GER 149 | 148,Brunei,BRU 150 | 149,Brussels Swimming and Water Polo Club,BEL 151 | 150,Brynhild-2,GBR 152 | 151,Bu III,BRA 153 | 152,Bucintoro Venezia,ITA 154 | 153,Bucintoro Venezia-1,ITA 155 | 154,Bulgaria,BUL 156 | 155,Bulgaria-1,BUL 157 | 156,Bulgaria-2,BUL 158 | 157,Buraddoo,AUS 159 | 158,Burevestnik,URS 160 | 159,Burkina Faso,BUR 161 | 160,Burundi,BDI 162 | 161,Buscape II,BRA 163 | 162,Bylina-2,RUS 164 | 163,C.V.A.-14,FRA 165 | 164,C.V.A.-7,FRA 166 | 165,Calcinhas,POR 167 | 166,Calimucho,FRA 168 | 167,Calypse II,FRA 169 | 168,Cambodia,CAM 170 | 169,Cambria,AUS 171 | 170,Cambridge University Boat Club-2,GBR 172 | 171,Camelia,POR 173 | 172,Cameroon,CMR 174 | 173,Camille,FRA 175 | 174,Canada,CAN 176 | 175,Canada-1,CAN 177 | 176,Canada-2,CAN 178 | 177,Canada-3,CAN 179 | 178,Canopus,ESP 180 | 179,Cape Verde,CPV 181 | 180,Caprice,CAN 182 | 181,Carabinier-15,FRA 183 | 182,Carabinier-5,FRA 184 | 183,Cayman Islands,CAY 185 | 184,Central African Republic,CAF 186 | 185,"Central Turnverein; Chicago",USA 187 | 186,Century Boat Club-1,USA 188 | 187,Cercle de l'Aviron Roubaix-4,FRA 189 | 188,Cercle Nautique de Reims-4,FRA 190 | 189,Ceres II,GBR 191 | 190,Cha-Cha III,YUG 192 | 191,Chad,CHA 193 | 192,Chaje II,FIN 194 | 193,Chamukina,MEX 195 | 194,Chance,SWE 196 | 195,Chicago Archers,USA 197 | 196,Chicago Athletic Association,USA 198 | 197,Chicago Athletic Association-2,USA 199 | 198,Chile,CHI 200 | 199,China,CHN 201 | 200,China-1,CHN 202 | 201,China-2,CHN 203 | 202,China-3,CHN 204 | 203,Chinese Taipei,TPE 205 | 204,Chinese Taipei-1,TPE 206 | 205,Chinese Taipei-2,TPE 207 | 206,Chok,DEN 208 | 207,Christian Brothers' College-1,USA 209 | 208,Chuckles,GBR 210 | 209,Cicely-1,GBR 211 | 210,Cinara-13,FRA 212 | 211,Cincinnati Archers,USA 213 | 212,Ciocca,ITA 214 | 213,Ciocca II,ITA 215 | 214,Ciocca III,POR 216 | 215,Circus,WIF 217 | 216,Ciss,BEL 218 | 217,Clearwater,DEN 219 | 218,Clementine V,BRA 220 | 219,Club Nautique de Dieppe-5,FRA 221 | 220,Club Nautique de Franais-1,FRA 222 | 221,Club Nautique de Lyon-2,FRA 223 | 222,Cobweb-1,GBR 224 | 223,Colette-10,FRA 225 | 224,Colette-12,FRA 226 | 225,Colombia,COL 227 | 226,Comanche,USA 228 | 227,Combine,BAH 229 | 228,Comoros,COM 230 | 229,Compigne Polo Club,FRA 231 | 230,Complex II,USA 232 | 231,"Concordia Turnverein; St Louis",USA 233 | 232,Congo (Brazzaville),CGO 234 | 233,Congo (Kinshasa),COD 235 | 234,Cook Islands,COK 236 | 235,Cornwall,GBR 237 | 236,Costa Rica,CRC 238 | 237,Cote d'Ivoire,CIV 239 | 238,Covunco III,ARG 240 | 239,Crabe I-11,FRA 241 | 240,Crabe I-2,FRA 242 | 241,Crabe I-3,FRA 243 | 242,Crabe II-1,FRA 244 | 243,Crabe II-12,FRA 245 | 244,Crabe II-4,FRA 246 | 245,Crete,CRT 247 | 246,Croatia,CRO 248 | 247,Crocodile-11,FRA 249 | 248,Crocodile-13,FRA 250 | 249,Cuba,CUB 251 | 250,Cuba-1,CUB 252 | 251,Cuba-2,CUB 253 | 252,Cupidon III,ARG 254 | 253,Cupidon Viking,FRA 255 | 254,Cuxhaven,TUR 256 | 255,Cyprus,CYP 257 | 256,Czech Republic,CZE 258 | 257,Czech Republic-1,CZE 259 | 258,Czech Republic-2,CZE 260 | 259,Czechoslovakia,TCH 261 | 260,Czechoslovakia-1,TCH 262 | 261,Czechoslovakia-2,TCH 263 | 262,Czechoslovakia-3,TCH 264 | 263,Daisy,NED 265 | 264,Damoiselle,FRA 266 | 265,Damoiselle IV,MON 267 | 266,Danaldo,JPN 268 | 267,Dansk Idrts Forbund,DEN 269 | 268,Danuta,POL 270 | 269,Danzig,BEL 271 | 270,"Davenport Turngemeinde; Davenport",USA 272 | 271,Demi-Mondaine-15,FRA 273 | 272,Demi-Mondaine-17,FRA 274 | 273,Denmark,DEN 275 | 274,Denmark-1,DEN 276 | 275,Denmark-2,DEN 277 | 276,Denmark-3,DEN 278 | 277,Denmark-4,DEN 279 | 278,Denmark/Sweden,SWE 280 | 279,DeRuyter,NED 281 | 280,Deutscher Schwimm Verband Berlin,GER 282 | 281,Devon and Somerset Wanderers,GBR 283 | 282,Diablo,AUS 284 | 283,Diabolo St Maurice,FRA 285 | 284,Dick-8,FRA 286 | 285,Digby,DEN 287 | 286,Dinah V,GER 288 | 287,Djibouti,DJI 289 | 288,Djinn,ARG 290 | 289,Dolfijn,BEL 291 | 290,Dominica,DMA 292 | 291,Dominican Republic,DOM 293 | 292,Don Schufro,DEN 294 | 293,Donar III,AUT 295 | 294,Dormy-1,GBR 296 | 295,Dow Jones,JPN 297 | 296,Dresden,CAN 298 | 297,Druzhba,URS 299 | 298,Ducky-16,FRA 300 | 299,Ducky-4,FRA 301 | 300,Dylan-2,GBR 302 | 301,EA II,FRA 303 | 302,East Germany,GDR 304 | 303,East Germany-1,GDR 305 | 304,East Germany-2,GDR 306 | 305,East Germany-3,GDR 307 | 306,Ecuador,ECU 308 | 307,Edelweiss II-1,BEL 309 | 308,Egypt,EGY 310 | 309,Eissero VI,FRA 311 | 310,El Salvador,ESA 312 | 311,Eleda,NOR 313 | 312,Elisabeth V,NOR 314 | 313,Elisabeth X,NOR 315 | 314,Elsie,SWE 316 | 315,Elvis Va,GER 317 | 316,Emily,GBR 318 | 317,Encore,NOR 319 | 318,England,GBR 320 | 319,England-1,GBR 321 | 320,Enotria,ITA 322 | 321,Equatorial Guinea,GEQ 323 | 322,Eritrea,ERI 324 | 323,Erna Signe,SWE 325 | 324,Escapade,BRA 326 | 325,Espadarte,POR 327 | 326,Espardate,POR 328 | 327,Esperia,ITA 329 | 328,Espuma del Mar,VEN 330 | 329,Essen,JPN 331 | 330,Esterel-1,FRA 332 | 331,Estonia,EST 333 | 332,Ethiopia,ETH 334 | 333,Ethnikos Gymnastikos Syllogos,GRE 335 | 334,Evita VI,AUT 336 | 335,Fada,FRA 337 | 336,Falcon IV,AUS 338 | 337,Falcon VI,AUS 339 | 338,Faneca,POR 340 | 339,Fantasio III,SUI 341 | 340,Fantlet-2,FRA 342 | 341,Fantlet-7,FRA 343 | 342,Favorite Hammonia-3,GER 344 | 343,Favorite-1,FRA 345 | 344,Favorite-17,FRA 346 | 345,Federated States of Micronesia,FSM 347 | 346,Femur-1,FRA 348 | 347,Femur-18,FRA 349 | 348,Feo,GBR 350 | 349,Fiji,FIJ 351 | 350,Finland,FIN 352 | 351,Finland-1,FIN 353 | 352,Finland-2,FIN 354 | 353,Finn II,FIN 355 | 354,Firebird II,TTO 356 | 355,Floresco,SWE 357 | 356,Formosa,USA 358 | 357,Fornebo,NOR 359 | 358,Fortuna,GBR 360 | 359,Foxhunters Hurlingham,USA 361 | 360,Fram,NOR 362 | 361,Fram III,NOR 363 | 362,France,FRA 364 | 363,France-1,FRA 365 | 364,France-2,FRA 366 | 365,France-3,FRA 367 | 366,France-4,FRA 368 | 367,France/Great Britain,GBR 369 | 368,Frankfurt Club,GER 370 | 369,Freddy,BEL 371 | 370,Freia-19,FRA 372 | 371,Freia-5,FRA 373 | 372,Freja,SWE 374 | 373,Frieda,USA 375 | 374,Frimousse,USA 376 | 375,Frip IV,FRA 377 | 376,Fruits,ESP 378 | 377,Gabbiano,AUS 379 | 378,Gabon,GAB 380 | 379,Galatea II,ITA 381 | 380,Galejan,SWE 382 | 381,Galerna,ESP 383 | 382,Gallant,USA 384 | 383,Gallia II,RUS 385 | 384,Galopin De La Font,POR 386 | 385,Galopin-20,FRA 387 | 386,Galopin-9,FRA 388 | 387,Galt Football Club,CAN 389 | 388,Gam II,FRA 390 | 389,Gambia,GAM 391 | 390,Gem,BAH 392 | 391,Gem II,GBR 393 | 392,Gem III,BAH 394 | 393,Gem IV,BAH 395 | 394,Gem VII,BAH 396 | 395,Georgia,GEO 397 | 396,Germania II,GER 398 | 397,"Germania Ruder Club; Hamburg",GER 399 | 398,"Germania Ruder Club; Hamburg-2",GER 400 | 399,Germany,GER 401 | 400,Germany-1,GER 402 | 401,Germany-2,GER 403 | 402,Germany-3,GER 404 | 403,Germany/United States,GER 405 | 404,Ghana,GHA 406 | 405,Gilliatt V,FRA 407 | 406,Girl Pat,BEL 408 | 407,Giselle-6,FRA 409 | 408,Gitana-2,FRA 410 | 409,Gitana-21,FRA 411 | 410,Glider,USA 412 | 411,Glisten,CAN 413 | 412,Gran Gesto,CAN 414 | 413,Great Britain,GBR 415 | 414,Great Britain-1,GBR 416 | 415,Great Britain-2,GBR 417 | 416,Great Britain-3,GBR 418 | 417,Great Britain-4,GBR 419 | 418,Great Britain/Germany,GER 420 | 419,Greece,GRE 421 | 420,Greece-1,GRE 422 | 421,Greece-2,GRE 423 | 422,Greece-3,GRE 424 | 423,Greece-4,GRE 425 | 424,Greenoaks Dundee,AUS 426 | 425,Grenada,GRN 427 | 426,Grifo III,POR 428 | 427,Grifo IV,POR 429 | 428,Grifone,ITA 430 | 429,Gteborgs Roddfrening-2,SWE 431 | 430,Gteborgs Roddklubb-1,SWE 432 | 431,Guam,GUM 433 | 432,Guanahani,BAH 434 | 433,Guatemala,GUA 435 | 434,Guinea,GUI 436 | 435,Guinea Bissau,GBS 437 | 436,Gullvinge,ARG 438 | 437,Gustel V,GER 439 | 438,Gustel X,GER 440 | 439,Gustl XI,GER 441 | 440,Guyana,GUY 442 | 441,Guyoni,FRA 443 | 442,Gwendoline-2,FRA 444 | 443,Gwendoline-22,FRA 445 | 444,GyoshuII,CAM 446 | 445,Gyp-23,FRA 447 | 446,Gyp-6,FRA 448 | 447,Gyrinus-1,GBR 449 | 448,Haiti,HAI 450 | 449,Hakahana,RSA 451 | 450,Hamburg,NOR 452 | 451,Hannover,POR 453 | 452,Harmony,NZL 454 | 453,Hatuey,CUB 455 | 454,Hayama,SWE 456 | 455,Hb-20,FRA 457 | 456,Hb-24,FRA 458 | 457,Heatherbell,FIN 459 | 458,Heidelberg,URU 460 | 459,Heira II,NOR 461 | 460,Helsingfors R. K.,FIN 462 | 461,Hera-1,GBR 463 | 462,Heroine,GBR 464 | 463,Hi-Hi,DEN 465 | 464,Hilarius,USA 466 | 465,Hirondelle,MON 467 | 466,Hojwa,SWE 468 | 467,Holland,NED 469 | 468,Hollandia,NED 470 | 469,Honduras,HON 471 | 470,Hong Kong,HKG 472 | 471,Hong Kong-1,HKG 473 | 472,Hong Kong-2,HKG 474 | 473,Hornet,AUS 475 | 474,Humbug V,SWE 476 | 475,Hungaria,HUN 477 | 476,Hungaria Evezos Egylet,HUN 478 | 477,Hungary,HUN 479 | 478,Hungary-1,HUN 480 | 479,Hungary-2,HUN 481 | 480,Hungary-3,HUN 482 | 481,Hurlingham-2,GBR 483 | 482,Iceland,ISL 484 | 483,Ilderim,SWE 485 | 484,Impala,RSA 486 | 485,Inca,BRA 487 | 486,Independent Rowing Club-3,USA 488 | 487,India,IND 489 | 488,India-1,IND 490 | 489,India-2,IND 491 | 490,Individual Olympic Athletes,IOA 492 | 491,Indonesia,INA 493 | 492,Indonesia-1,INA 494 | 493,Indonesia-2,INA 495 | 494,Inga-Lill XXXXIII,FIN 496 | 495,Ingegerd,SWE 497 | 496,Iran,IRI 498 | 497,Iraq,IRQ 499 | 498,Ireland,IRL 500 | 499,Ireland-1,IRL 501 | 500,Ireland-2,IRL 502 | 501,Ireland-3,GBR 503 | 502,Irene,NOR 504 | 503,Israel,ISR 505 | 504,Israel-1,ISR 506 | 505,Israel-2,ISR 507 | 506,Italia,ITA 508 | 507,Italy,ITA 509 | 508,Italy-1,ITA 510 | 509,Italy-2,ITA 511 | 510,Italy-3,ITA 512 | 511,Jamaica,JAM 513 | 512,Jamaica-1,JAM 514 | 513,Jamaica-2,JAM 515 | 514,Japan,JPN 516 | 515,Japan-1,JPN 517 | 516,Japan-2,JPN 518 | 517,Japan-3,JPN 519 | 518,Jeanette-25,FRA 520 | 519,Jeannette-18,FRA 521 | 520,Jest,NZL 522 | 521,Jet,CAN 523 | 522,Jill,DEN 524 | 523,Jo,NOR 525 | 524,Johan,GBR 526 | 525,John B,BAH 527 | 526,Jordan,JOR 528 | 527,Joy,NED 529 | 528,June Climene,SGP 530 | 529,Jupiter,USA 531 | 530,K Division Metropolitan Police Team-3,GBR 532 | 531,K.S.S.S. 1912-2,SWE 533 | 532,Kalayaan,PHI 534 | 533,Kannibaltje,FRA 535 | 534,Kathleen,USA 536 | 535,Kazakhstan,KAZ 537 | 536,Kemphaan,NED 538 | 537,Kenya,KEN 539 | 538,Kerstin-1,SWE 540 | 539,Kiel,DEN 541 | 540,Kingfisher,MYA 542 | 541,Kiribati,KIR 543 | 542,Kitty-1,SWE 544 | 543,Kln,SUI 545 | 544,Knigsberg,HUN 546 | 545,KNS,NOR 547 | 546,Kon-Tiki,URS 548 | 547,Konstanz,YUG 549 | 548,Korshun,URS 550 | 549,Kosovo,KOS 551 | 550,Kristiania Roklub,NOR 552 | 551,Kristiania Roklub-1,NOR 553 | 552,Kuling,SWE 554 | 553,Kullan,SWE 555 | 554,Kurush II,CUB 556 | 555,Kurush IV,CUB 557 | 556,Kuwait,KUW 558 | 557,Kyrgyzstan,KGZ 559 | 558,L'Aile VI,FRA 560 | 559,"La Salle Turnverein; Chicago",USA 561 | 560,LaBandera,FRA 562 | 561,Lady C,GBR 563 | 562,Lalage,GBR 564 | 563,Lancet,GBR 565 | 564,Laos,LAO 566 | 565,"Large boat; Central Naval Prep School ""Poros""-1",GRE 567 | 566,Lasha,SWE 568 | 567,Latvia,LAT 569 | 568,Latvia-1,LAT 570 | 569,Latvia-2,LAT 571 | 570,Laurea-1,GBR 572 | 571,Lbeck,BRA 573 | 572,Leander Club #1-1,GBR 574 | 573,Leander Club #2-2,GBR 575 | 574,Leander Club-1,GBR 576 | 575,Leander Club-2,GBR 577 | 576,Lebanon,LIB 578 | 577,Legionario,ITA 579 | 578,Leipzig,FRA 580 | 579,"Lemzos Thorichton ""Psara""-3",GRE 581 | 580,"Lemzos Thorichton ""Spetsai""-4",GRE 582 | 581,Lerina,SUI 583 | 582,Lesotho,LES 584 | 583,Lett,NOR 585 | 584,Libellule de Paris,FRA 586 | 585,Libellule de Paris-3,FRA 587 | 586,Liberia,LBR 588 | 587,Libya,LBA 589 | 588,Liechtenstein,LIE 590 | 589,"Life boat naval ship ""Spetsai""-1",GRE 591 | 590,Linglom,THA 592 | 591,Lithuania,LTU 593 | 592,Liverpool Police Team-2,GBR 594 | 593,Llanoria,USA 595 | 594,London City Police-1,GBR 596 | 595,Lotta IV,SWE 597 | 596,Lucky,NOR 598 | 597,Lucky Girl-1,FIN 599 | 598,Lucky Star,FIN 600 | 599,Ludwigshafener Ruder Verein-1,GER 601 | 600,Ludwigshafener Ruderverein,GER 602 | 601,Lully II,NOR 603 | 602,Luxembourg,LUX 604 | 603,Luxembourg-1,LUX 605 | 604,Luxembourg-2,LUX 606 | 605,Lyn-2,NOR 607 | 606,Lynn,FIN 608 | 607,Ma'Lindo,POR 609 | 608,Mac Miche,FRA 610 | 609,Macedonia,MKD 611 | 610,Macky VI,GER 612 | 611,Mad Dog,CAN 613 | 612,Madagascar,MAD 614 | 613,Magda IX,NOR 615 | 614,Magdalen College Boat Club-1,GBR 616 | 615,Maid of Lebanon,LIB 617 | 616,Mainz,CHI 618 | 617,Malawi,MAW 619 | 618,Malaya,MAL 620 | 619,Malaysia,MAS 621 | 620,Malaysia-1,MAS 622 | 621,Malaysia-2,MAS 623 | 622,Maldives,MDV 624 | 623,Mali,MLI 625 | 624,Malta,MLT 626 | 625,Mamie-4,FRA 627 | 626,Mamie-6,FRA 628 | 627,Manana,CAN 629 | 628,Marga-2,SWE 630 | 629,Margaret,USA 631 | 630,Mari,SWE 632 | 631,Marie-Tim,GRE 633 | 632,"Marinai della nave da guerra ""Varese""",ITA 634 | 633,Marmara,TUR 635 | 634,Marmi II-1,NOR 636 | 635,Marshall Islands,MHL 637 | 636,Marsouin-26,FRA 638 | 637,Marsouin-8,FRA 639 | 638,Martha-1,FRA 640 | 639,Martha-27,FRA 641 | 640,Maryke,AUS 642 | 641,Mascaret-28,FRA 643 | 642,Mascaret-4,FRA 644 | 643,Mascotte,NED 645 | 644,Matrero II,ARG 646 | 645,Mauritania,MTN 647 | 646,Mauritius,MRI 648 | 647,Mauritius-1,MRI 649 | 648,Mauritius-2,MRI 650 | 649,May Be,SWE 651 | 650,May Be VII,SWE 652 | 651,May-Be 1960,AUT 653 | 652,Mebi,ITA 654 | 653,Merope,ITA 655 | 654,Merope III,ITA 656 | 655,Meteor,BEL 657 | 656,Mexico,MEX 658 | 657,Mexico-1,MEX 659 | 658,Mexico-2,MEX 660 | 659,Mignon-29,FRA 661 | 660,Mignon-3,FRA 662 | 661,Milwaukee Athletic Club-1,USA 663 | 662,"Milwaukee Turnverein; Milwaukee",USA 664 | 663,Minerva Amsterdam,NED 665 | 664,Minotaur,USA 666 | 665,Mirtala,ITA 667 | 666,Miss Denmark 1964,DEN 668 | 667,Miss Nippon IV,JAM 669 | 668,Miss Nippon V,JPN 670 | 669,Missouri Athletic Club-3,USA 671 | 670,Mistral Hojris,GBR 672 | 671,MitaII,JPN 673 | 672,Mizar,ARG 674 | 673,Mohawk Indians-2,CAN 675 | 674,Moldova,MDA 676 | 675,Monaco,MON 677 | 676,Monaco-1,MON 678 | 677,Monaco-2,MON 679 | 678,Mongolia,MGL 680 | 679,Monica,NOR 681 | 680,Montenegro,MNE 682 | 681,Moorina,AUS 683 | 682,Morena,DEN 684 | 683,Morocco,MAR 685 | 684,Moseley Wanderers,GBR 686 | 685,Mosk II,NOR 687 | 686,Mouchette-2,GBR 688 | 687,Mound City Rowing Club-2,USA 689 | 688,Mozambique,MOZ 690 | 689,Mutafo,GER 691 | 690,Myanmar,MYA 692 | 691,Myojo,JPN 693 | 692,Mystery,USA 694 | 693,Mythilus,USA 695 | 694,Nadine,NED 696 | 695,Naiad,AUS 697 | 696,Namibia,NAM 698 | 697,Namoussa,FRA 699 | 698,Nan-2,GBR 700 | 699,Nauru,NRU 701 | 700,Nausikaa 4,MEX 702 | 701,Nautikos Omilos-3,GRE 703 | 702,Nepal,NEP 704 | 703,Nephos I,GRE 705 | 704,Neptun II,URS 706 | 705,Netherlands,NED 707 | 706,Netherlands Antilles,AHO 708 | 707,Netherlands-1,NED 709 | 708,Netherlands-2,NED 710 | 709,"New College; Oxford-2",GBR 711 | 710,New York Athletic Club,USA 712 | 711,New York Athletic Club #1-1,USA 713 | 712,New York Athletic Club #2-4,USA 714 | 713,New York Athletic Club-1,USA 715 | 714,New York Athletic Club-4,USA 716 | 715,"New York Turnverein; New York",USA 717 | 716,New Zealand,NZL 718 | 717,New Zealand-1,NZL 719 | 718,New Zealand-2,NZL 720 | 719,Newfoundland,NFL 721 | 720,Nicaragua,NCA 722 | 721,Niger,NIG 723 | 722,Nigeria,NGR 724 | 723,Nigeria-1,NGR 725 | 724,Nigeria-2,NGR 726 | 725,Nikh,GRE 727 | 726,Nina,FIN 728 | 727,Nina Claire-2,FRA 729 | 728,Nina Claire-30,FRA 730 | 729,Nirefs,GRE 731 | 730,Nirwana,GER 732 | 731,Nokaut II,URS 733 | 732,Nora,NOR 734 | 733,Noreg,NOR 735 | 734,Norman-1,RUS 736 | 735,Norna,NOR 737 | 736,Nortazo,URU 738 | 737,North Borneo,NBO 739 | 738,North Korea,PRK 740 | 739,North Korea-1,PRK 741 | 740,North Korea-2,PRK 742 | 741,North Yemen,YAR 743 | 742,Norway,NOR 744 | 743,Norway-1,NOR 745 | 744,Norway-2,NOR 746 | 745,Norway-3,NOR 747 | 746,Norwegian Rowing Association,NOR 748 | 747,"Norwegier Turnverein; Brooklyn",USA 749 | 748,Notavel,POR 750 | 749,Nrnberg,NED 751 | 750,Nurdug II,DEN 752 | 751,Nykjbings paa Falster,DEN 753 | 752,Oleander II,BER 754 | 753,Oleander XII,BER 755 | 754,Olen,URS 756 | 755,Olimpia,HUN 757 | 756,Olle,FRA 758 | 757,Olympion,GRE 759 | 758,Oman,OMA 760 | 759,Omas Helliniki P. S.,GRE 761 | 760,Omilos Ereton Peiraios-2,GRE 762 | 761,Omilos Ereton Smyrnis,GRE 763 | 762,Oranje,NED 764 | 763,Orion,CAN 765 | 764,Ormsund Roklub-2,NOR 766 | 765,"Osborne Swimming Club; Manchester",GBR 767 | 766,Oxalis,POR 768 | 767,Paka,GBR 769 | 768,Paka V,GER 770 | 769,Pakaria,AUS 771 | 770,Pakistan,PAK 772 | 771,Palau,PLW 773 | 772,Palestine,PLE 774 | 773,Pam,BER 775 | 774,Pampero,ARG 776 | 775,Pan,NOR 777 | 776,Pan II,NOR 778 | 777,Pan-Hellenic Athletic Club,GRE 779 | 778,Panama,PAN 780 | 779,Pandora,NZL 781 | 780,Panhellenios Gymnastikos Syllogos-1,GRE 782 | 781,Pannonia RC/National RC,HUN 783 | 782,Papua New Guinea,PNG 784 | 783,Paraguay,PAR 785 | 784,Partenope,INA 786 | 785,Pasodoble,ESP 787 | 786,"Passaic Turnverein; Passaic",USA 788 | 787,Patricia,PHI 789 | 788,Paula,AUS 790 | 789,Pegaso,ITA 791 | 790,Peiraikos Syndesmos-2,GRE 792 | 791,Peri,RHO 793 | 792,Peri II,ZIM 794 | 793,Persey,URS 795 | 794,Peru,PER 796 | 795,Pettit-Poucet-6,FRA 797 | 796,"Phalainis ton Thorichtou ""Hydra""-2",GRE 798 | 797,"Phalainis ton Thorichtou ""Psara""-3",GRE 799 | 798,"Philadelphia Turngemeinde; Philadelphia",USA 800 | 799,Philippines,PHI 801 | 800,Phoenix,HKG 802 | 801,Pierre et Jean-3,FRA 803 | 802,Pierre et Jean-4,FRA 804 | 803,Pigoule,FRA 805 | 804,Pimm,BRA 806 | 805,Pirouette-31,FRA 807 | 806,Pirouette-5,FRA 808 | 807,Pistoja/Firenze,ITA 809 | 808,Plume-patte-32,FRA 810 | 809,Plume-Patte-5,FRA 811 | 810,Poland,POL 812 | 811,Poland-1,POL 813 | 812,Poland-2,POL 814 | 813,Poland-3,POL 815 | 814,Polyteknisk Roklub-1,DEN 816 | 815,Pop Art,CAN 817 | 816,Portugal,POR 818 | 817,Portugal-1,POR 819 | 818,Portugal-2,POR 820 | 819,Posillipo III,ESP 821 | 820,Potomac Archers,USA 822 | 821,Potsdam,GBR 823 | 822,Pousse-Moi Pas VII,SUI 824 | 823,Primorka,YUG 825 | 824,Proteus II,GRE 826 | 825,Puerto Rico,PUR 827 | 826,Puerto Rico-1,PUR 828 | 827,Puerto Rico-2,PUR 829 | 828,Pupilles de Neptune de Lille #1-3,FRA 830 | 829,Pupilles de Neptune de Lille #2-1,FRA 831 | 830,Pupilles de Neptune de Lille-1,FRA 832 | 831,Qatar,QAT 833 | 832,Qu'Importe,FRA 834 | 833,Quand-Mme-2,FRA 835 | 834,Quand-Mme-33,FRA 836 | 835,Quando Quando,AUS 837 | 836,Quicksilver-2,GBR 838 | 837,"R.-V. Germania; Leitmeritz",AUT 839 | 838,Racing Club de France,FRA 840 | 839,Raili,FIN 841 | 840,Ral-Club Barcelona,ESP 842 | 841,Ralia,FIN 843 | 842,Rambo,JPN 844 | 843,Rampage,ARG 845 | 844,Ravel,USA 846 | 845,Ravenswood Boat Club-2,USA 847 | 846,Red Dragon,NZL 848 | 847,Red Indian,FRA 849 | 848,Refugee Olympic Athletes,ROT 850 | 849,Relampago,AUS 851 | 850,Rhodesia,RHO 852 | 851,Rhythm,USA 853 | 852,Riccar,JPN 854 | 853,Rififi,FIN 855 | 854,Rika II,SGP 856 | 855,rn-2,FIN 857 | 856,Roddklubben af 1912-1,SWE 858 | 857,Roddklubben af 1912-2,SWE 859 | 858,Roehampton-1,GBR 860 | 859,Roklubb Kbnhavn-2,DEN 861 | 860,Roma,ITA 862 | 861,Romania,ROU 863 | 862,Romania-1,ROU 864 | 863,Romania-2,ROU 865 | 864,Romolo,ITA 866 | 865,Rose Pompon,FRA 867 | 866,Rostock,GER 868 | 867,Rowing Club Castillon-3,FRA 869 | 868,Roy,JPN 870 | 869,Royal Club Nautique de Gand,BEL 871 | 870,Rozenn-3,FRA 872 | 871,Rush IV,USA 873 | 872,Rush V,SWE 874 | 873,Rush VII,SWE 875 | 874,Russia,RUS 876 | 875,Russia-1,RUS 877 | 876,Russia-2,RUS 878 | 877,Russia-3,RUS 879 | 878,Rwanda,RWA 880 | 879,Saar,SAA 881 | 880,Sabre,GBR 882 | 881,Saga-2,SWE 883 | 882,SagaII,CAN 884 | 883,Saint Kitts and Nevis,SKN 885 | 884,Saint Lucia,LCA 886 | 885,Saint Vincent and the Grenadines,VIN 887 | 886,Salamander,GBR 888 | 887,Salinero,NED 889 | 888,Samoa,SAM 890 | 889,San Marino,SMR 891 | 890,Sandra,FRA 892 | 891,Sans Atout-1,SWE 893 | 892,Santa Maria,CAN 894 | 893,Sao Tome and Principe,STP 895 | 894,Sarcelle-3,FRA 896 | 895,Sarcelle-35,FRA 897 | 896,Saskia,GBR 898 | 897,Sass-2,SWE 899 | 898,Satchmo,GER 900 | 899,Saudi Arabia,KSA 901 | 900,Scamasaxe-2,FRA 902 | 901,Scamasaxe-3,FRA 903 | 902,Scamasaxe-34,FRA 904 | 903,Scaup,CAN 905 | 904,Scotia,GBR 906 | 905,Scotland,GBR 907 | 906,Scotland-2,GBR 908 | 907,Scotland-3,GBR 909 | 908,Scram,CAN 910 | 909,Sea Dog-2,GBR 911 | 910,Seawanhaka Boat Club-1,USA 912 | 911,Senegal,SEN 913 | 912,Serbia,SRB 914 | 913,Serbia and Montenegro,SCG 915 | 914,Serbia-1,SRB 916 | 915,Serbia-2,SRB 917 | 916,Serendipity,CAN 918 | 917,Seychelles,SEY 919 | 918,Sheerio,FIN 920 | 919,Shoveller,RSA 921 | 920,Shrew II,USA 922 | 921,Siames-Cat,THA 923 | 922,Sibindi-2,GBR 924 | 923,Sidi Fekkar-36,FRA 925 | 924,Sidi-Fekkar-14,FRA 926 | 925,Sierra Leone,SLE 927 | 926,Sif,SWE 928 | 927,Sildra-1,NOR 929 | 928,Silja,NOR 930 | 929,Singapore,SGP 931 | 930,Singapore-1,SGP 932 | 931,Singapore-2,SGP 933 | 932,Singy-37,FRA 934 | 933,Singy-7,FRA 935 | 934,Sirene,NOR 936 | 935,Sjhxa,POR 937 | 936,Sjovinge,SWE 938 | 937,Skidoo,USA 939 | 938,Skum,DEN 940 | 939,Slaghoken,SWE 941 | 940,Slaghoken II,SWE 942 | 941,Slovakia,SVK 943 | 942,Slovakia-1,SVK 944 | 943,Slovakia-2,SVK 945 | 944,Slovenia,SLO 946 | 945,Slovenia-1,SLO 947 | 946,Slovenia-2,SLO 948 | 947,Smyrna,GBR 949 | 948,Snap,DEN 950 | 949,Snowten III,FRA 951 | 950,Snude,DEN 952 | 951,"Socialer Turnverein; Detroit",USA 953 | 952,Societ Nautique de la Marne,FRA 954 | 953,Societ Nautique de la Marne-1,FRA 955 | 954,Societ Nautique de la Marne-3,FRA 956 | 955,Socit Nautique de Bayonne,FRA 957 | 956,Socit Nautique de Bayonne-1,FRA 958 | 957,Socit Nautique de Bayonne-2,FRA 959 | 958,Socit Nautique de la Basse Seine-1,FRA 960 | 959,Socit Nautique de la Basse Seine-2,FRA 961 | 960,Solomon Islands,SOL 962 | 961,Solos Carex,SWE 963 | 962,Somalia,SOM 964 | 963,Sonja II,NOR 965 | 964,Sorais-2,GBR 966 | 965,Souriceau-38,FRA 967 | 966,Souriceau-4,FRA 968 | 967,South Africa,RSA 969 | 968,South Africa-1,RSA 970 | 969,South Africa-2,RSA 971 | 970,South Korea,KOR 972 | 971,South Korea-1,KOR 973 | 972,South Korea-2,KOR 974 | 973,"South St Louis Turnverein; St Louis",USA 975 | 974,South Sudan,SSD 976 | 975,South Vietnam,VNM 977 | 976,South Yemen,YMD 978 | 977,Souvenance,FRA 979 | 978,Soviet Union,URS 980 | 979,Soviet Union-1,URS 981 | 980,Soviet Union-2,URS 982 | 981,Soviet Union-3,URS 983 | 982,Spain,ESP 984 | 983,Spain-1,ESP 985 | 984,Spain-2,ESP 986 | 985,Spirit III,USA 987 | 986,Spirit VI,USA 988 | 987,Springbok,RSA 989 | 988,Squid III,FIN 990 | 989,Sri Lanka,SRI 991 | 990,St. Louis Amateur Athletic Association,USA 992 | 991,St. Louis Southwest Turnverein #1-2,USA 993 | 992,St. Louis Southwest Turnverein #2-3,USA 994 | 993,St. Margrite,NED 995 | 994,St. Rose-2,USA 996 | 995,Stade Franais AC-2,FRA 997 | 996,Starita,NED 998 | 997,Starlight III,GBR 999 | 998,State VI,CAN 1000 | 999,Stella-2,NOR 1001 | 1000,Struten,NOR 1002 | 1001,Studenternes Roklub-2,NOR 1003 | 1002,Subbnboana,GER 1004 | 1003,Sudan,SUD 1005 | 1004,Sunrise,NED 1006 | 1005,Sunshine,SWE 1007 | 1006,Suriname,SUR 1008 | 1007,Surprise,AUT 1009 | 1008,Suzon IV-39,FRA 1010 | 1009,Suzon IV-5,FRA 1011 | 1010,Suzy-2,BEL 1012 | 1011,Swaziland,SWZ 1013 | 1012,Sweden,SWE 1014 | 1013,Sweden-1,SWE 1015 | 1014,Sweden-2,SWE 1016 | 1015,Sweden-3,SWE 1017 | 1016,Sweden-4,SWE 1018 | 1017,Swedish Star,SWE 1019 | 1018,Swift,GBR 1020 | 1019,Switzerland,SUI 1021 | 1020,Switzerland-1,SUI 1022 | 1021,Switzerland-2,SUI 1023 | 1022,Sydney Rowing Club,ANZ 1024 | 1023,Sylvia,SWE 1025 | 1024,Symphony,POR 1026 | 1025,Syndi,CAN 1027 | 1026,Syria,SYR 1028 | 1027,Taifun,NOR 1029 | 1028,Tajamar,ESP 1030 | 1029,Tajikistan,TJK 1031 | 1030,Tan-Fe-Pah,BEL 1032 | 1031,Tango,ARG 1033 | 1032,Tantalus,GER 1034 | 1033,Tanzania,TAN 1035 | 1034,Tengiri,INA 1036 | 1035,Teresita,FIN 1037 | 1036,Terrible,BRA 1038 | 1037,Thailand,THA 1039 | 1038,Thailand-1,THA 1040 | 1039,Thailand-2,THA 1041 | 1040,Thalatta,NED 1042 | 1041,Thames Rowing Club,GBR 1043 | 1042,The Cloud,IRL 1044 | 1043,Thessalonki-1,GRE 1045 | 1044,Three Leaves,IRL 1046 | 1045,Three Star Too,USA 1047 | 1046,Tichiboo,THA 1048 | 1047,Tilly,GER 1049 | 1048,Tim-Tam III,SUI 1050 | 1049,Timor Leste,TLS 1051 | 1050,Tineke,USA 1052 | 1051,Tip,DEN 1053 | 1052,Titia,GBR 1054 | 1053,Tlaloc,MEX 1055 | 1054,Togo,TOG 1056 | 1055,Tom Kyle,GER 1057 | 1056,Tomahawk II,CAN 1058 | 1057,Tonga,TGA 1059 | 1058,Tornade-16,FRA 1060 | 1059,Tornado,SWE 1061 | 1060,Toronto Argonauts,CAN 1062 | 1061,Tournade-40,FRA 1063 | 1062,Tramontane,FRA 1064 | 1063,Trans-Mississippi Golf Association-2,USA 1065 | 1064,Trickson VI,CAN 1066 | 1065,Trinidad and Tobago,TTO 1067 | 1066,Trintel II,NED 1068 | 1067,Tritons Lillois-2,FRA 1069 | 1068,Tu-Fri,FIN 1070 | 1069,Tulilind,URS 1071 | 1070,Tunisia,TUN 1072 | 1071,Turkey,TUR 1073 | 1072,Turkmenistan,TKM 1074 | 1073,"Turnverein Vorwrts; Chicago",GER 1075 | 1074,"Turnverein Vorwrts; Cleveland",USA 1076 | 1075,Turquoise-1,FRA 1077 | 1076,Turquoise-3,FRA 1078 | 1077,Tutti V,EST 1079 | 1078,Tuvalu,TUV 1080 | 1079,Twinkle,GBR 1081 | 1080,Twins II,ITA 1082 | 1081,Twins VIII,ITA 1083 | 1082,Ubu,BEL 1084 | 1083,Uganda,UGA 1085 | 1084,Ukraine,UKR 1086 | 1085,Ukraine-1,UKR 1087 | 1086,Ukraine-2,UKR 1088 | 1087,Umberta V,ITA 1089 | 1088,Unified Team,EUN 1090 | 1089,Unified Team-1,EUN 1091 | 1090,Unified Team-2,EUN 1092 | 1091,Unified Team-3,EUN 1093 | 1092,Union des Socits Franais de Sports Athletiques,FRA 1094 | 1093,Unique,GBR 1095 | 1094,United Arab Emirates,UAE 1096 | 1095,United Arab Republic,UAR 1097 | 1096,United States,USA 1098 | 1097,United States Golf Association-3,USA 1099 | 1098,United States Virgin Islands,ISV 1100 | 1099,United States Virgin Islands-1,ISV 1101 | 1100,United States Virgin Islands-2,ISV 1102 | 1101,United States-1,USA 1103 | 1102,United States-10,USA 1104 | 1103,United States-11,USA 1105 | 1104,United States-12,USA 1106 | 1105,United States-13,USA 1107 | 1106,United States-14,USA 1108 | 1107,United States-2,USA 1109 | 1108,United States-3,USA 1110 | 1109,United States-4,USA 1111 | 1110,United States-5,USA 1112 | 1111,United States-6,USA 1113 | 1112,United States-7,USA 1114 | 1113,United States-8,USA 1115 | 1114,United States-9,USA 1116 | 1115,United States/France,FRA 1117 | 1116,United States/Great Britain,USA 1118 | 1117,Univ. of Brussels,BEL 1119 | 1118,Unknown,UNK 1120 | 1119,Upton Park FC,GBR 1121 | 1120,Uragan,URS 1122 | 1121,Uruguay,URU 1123 | 1122,USFSA,FRA 1124 | 1123,Uzbekistan,UZB 1125 | 1124,Uzbekistan-1,UZB 1126 | 1125,Uzbekistan-2,UZB 1127 | 1126,Vanuatu,VAN 1128 | 1127,Vaxholm Roddklubb,SWE 1129 | 1128,Venezuela,VEN 1130 | 1129,Venilia,ITA 1131 | 1130,Vento Sul,BRA 1132 | 1131,Verveine-19,FRA 1133 | 1132,Verveine-41,FRA 1134 | 1133,Vesania,CUB 1135 | 1134,Vesper Boat Club,USA 1136 | 1135,Vicking,POR 1137 | 1136,Vietnam,VIE 1138 | 1137,Viking,NOR 1139 | 1138,Viktoriya,URS 1140 | 1139,Vim III,USA 1141 | 1140,Vinga-1,SWE 1142 | 1141,Vinha,AUS 1143 | 1142,Virginie,FRA 1144 | 1143,Vision,GBR 1145 | 1144,Voloira II,ITA 1146 | 1145,Wales-4,GBR 1147 | 1146,Wannsee,GER 1148 | 1147,Web II,DEN 1149 | 1148,Web III,DEN 1150 | 1149,Wendehals,GER 1151 | 1150,West Germany,FRG 1152 | 1151,West Germany-1,FRG 1153 | 1152,West Germany-2,FRG 1154 | 1153,West Germany-3,FRG 1155 | 1154,West Indies Federation,WIF 1156 | 1155,Western Golf Association-1,USA 1157 | 1156,Western Rowing Club-3,USA 1158 | 1157,Whirlaway,CAN 1159 | 1158,Whisper,JPN 1160 | 1159,White Lady,DEN 1161 | 1160,Whitini Star,FRA 1162 | 1161,Widgeon,USA 1163 | 1162,Wiking,ARG 1164 | 1163,Willem-Six,NED 1165 | 1164,Windor,CAN 1166 | 1165,Winnipeg Shamrocks-1,CAN 1167 | 1166,Wolseley-Siddeley-1,GBR 1168 | 1167,Xantippa,FIN 1169 | 1168,Xolotl,MEX 1170 | 1169,Yangon,MYA 1171 | 1170,Yemen,YEM 1172 | 1171,Yeoman,BAH 1173 | 1172,Yeoman V,RSA 1174 | 1173,Yeoman VII,GBR 1175 | 1174,Yeoman XII,GBR 1176 | 1175,Ylliam II,SUI 1177 | 1176,Ylliam VII,SUI 1178 | 1177,Ylliam VIII,SUI 1179 | 1178,Yugoslavia,YUG 1180 | 1179,Yugoslavia-1,YUG 1181 | 1180,Yugoslavia-2,YUG 1182 | 1181,Zambia,ZAM 1183 | 1182,Zefyros,GRE 1184 | 1183,Zimbabwe,ZIM 1185 | 1184,Zut,BEL 1186 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "2" 2 | services: 3 | spark-master: 4 | image: bde2020/spark-master:3.0.0-hadoop3.2 5 | container_name: spark-master 6 | ports: 7 | - "8080:8080" 8 | - "8888:8888" 9 | - "7077:7077" 10 | - "4042:4040" 11 | environment: 12 | - INIT_DAEMON_STEP=setup_spark 13 | volumes: 14 | - ./codes:/home 15 | spark-worker-1: 16 | image: bde2020/spark-worker:3.0.0-hadoop3.2 17 | container_name: spark-worker-1 18 | depends_on: 19 | - spark-master 20 | ports: 21 | - "8081:8081" 22 | - "4041:4040" 23 | environment: 24 | - "SPARK_MASTER=spark://spark-master:7077" 25 | - "constraint:node==" 26 | volumes: 27 | - ./codes:/home 28 | # spark-worker-2: 29 | # image: bde2020/spark-worker:3.0.0-hadoop3.2 30 | # container_name: spark-worker-2 31 | # depends_on: 32 | # - spark-master 33 | # ports: 34 | # - "8082:8081" 35 | # environment: 36 | # - "SPARK_MASTER=spark://spark-master:7077" 37 | # - "constraint:node==" 38 | -------------------------------------------------------------------------------- /k8s-spark-cluster.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: spark-master 5 | spec: 6 | selector: 7 | app: spark-master 8 | ports: 9 | - name: web-ui 10 | protocol: TCP 11 | port: 8080 12 | targetPort: 8080 13 | - name: master 14 | protocol: TCP 15 | port: 7077 16 | targetPort: 7077 17 | - name: master-rest 18 | protocol: TCP 19 | port: 6066 20 | targetPort: 6066 21 | clusterIP: None 22 | --- 23 | apiVersion: v1 24 | kind: Service 25 | metadata: 26 | name: spark-client 27 | spec: 28 | selector: 29 | app: spark-client 30 | clusterIP: None 31 | --- 32 | apiVersion: apps/v1 33 | kind: Deployment 34 | metadata: 35 | name: spark-master 36 | labels: 37 | app: spark-master 38 | spec: 39 | selector: 40 | matchLabels: 41 | app: spark-master 42 | template: 43 | metadata: 44 | labels: 45 | app: spark-master 46 | spec: 47 | containers: 48 | - name: spark-master 49 | image: bde2020/spark-master:3.0.0-hadoop3.2 50 | imagePullPolicy: Always 51 | ports: 52 | - containerPort: 8080 53 | - containerPort: 7077 54 | - containerPort: 6066 55 | --- 56 | apiVersion: apps/v1 57 | kind: DaemonSet 58 | metadata: 59 | name: spark-worker 60 | labels: 61 | app: spark-worker 62 | spec: 63 | selector: 64 | matchLabels: 65 | name: spark-worker 66 | template: 67 | metadata: 68 | labels: 69 | name: spark-worker 70 | spec: 71 | containers: 72 | - name: spark-worker 73 | image: bde2020/spark-worker:3.0.0-hadoop3.2 74 | imagePullPolicy: Always 75 | ports: 76 | - containerPort: 8081 77 | -------------------------------------------------------------------------------- /master/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM bde2020/spark-base:3.0.0-hadoop3.2 2 | 3 | LABEL maintainer="Gezim Sejdiu , Giannis Mouchakis " 4 | 5 | COPY master.sh / 6 | 7 | ENV SPARK_MASTER_PORT 7077 8 | ENV SPARK_MASTER_WEBUI_PORT 8080 9 | ENV SPARK_MASTER_LOG /spark/logs 10 | 11 | EXPOSE 8080 7077 6066 12 | 13 | CMD ["/bin/bash", "/master.sh"] 14 | -------------------------------------------------------------------------------- /master/README.md: -------------------------------------------------------------------------------- 1 | # Spark master 2 | 3 | See [big-data-europe/docker-spark README](https://github.com/big-data-europe/docker-spark). -------------------------------------------------------------------------------- /master/master.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export SPARK_MASTER_HOST=`hostname` 4 | 5 | . "/spark/sbin/spark-config.sh" 6 | 7 | . "/spark/bin/load-spark-env.sh" 8 | 9 | mkdir -p $SPARK_MASTER_LOG 10 | 11 | export SPARK_HOME=/spark 12 | 13 | ln -sf /dev/stdout $SPARK_MASTER_LOG/spark-master.out 14 | 15 | cd /spark/bin && /spark/sbin/../bin/spark-class org.apache.spark.deploy.master.Master \ 16 | --ip $SPARK_MASTER_HOST --port $SPARK_MASTER_PORT --webui-port $SPARK_MASTER_WEBUI_PORT >> $SPARK_MASTER_LOG/spark-master.out 17 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | pyspark -------------------------------------------------------------------------------- /submit/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM bde2020/spark-base:3.0.0-hadoop3.2 2 | 3 | LABEL maintainer="Gezim Sejdiu , Giannis Mouchakis " 4 | 5 | ENV SPARK_MASTER_NAME spark-master 6 | ENV SPARK_MASTER_PORT 7077 7 | ENV SPARK_APPLICATION_JAR_LOCATION /app/application.jar 8 | ENV SPARK_APPLICATION_PYTHON_LOCATION /app/app.py 9 | ENV SPARK_APPLICATION_MAIN_CLASS my.main.Application 10 | ENV SPARK_APPLICATION_ARGS "" 11 | 12 | COPY submit.sh / 13 | 14 | CMD ["/bin/bash", "/submit.sh"] 15 | -------------------------------------------------------------------------------- /submit/README.md: -------------------------------------------------------------------------------- 1 | # Spark submit 2 | 3 | The Spark submit image serves as a base image to submit your application on a Spark cluster. This may be either a Java, Scala or Python application. See [big-data-europe/docker-spark README](https://github.com/big-data-europe/docker-spark) for a description how to submit your own application to a Spark cluster. 4 | -------------------------------------------------------------------------------- /submit/submit.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export SPARK_MASTER_URL=spark://${SPARK_MASTER_NAME}:${SPARK_MASTER_PORT} 4 | export SPARK_HOME=/spark 5 | 6 | /wait-for-step.sh 7 | 8 | 9 | /execute-step.sh 10 | if [ -f "${SPARK_APPLICATION_JAR_LOCATION}" ]; then 11 | echo "Submit application ${SPARK_APPLICATION_JAR_LOCATION} with main class ${SPARK_APPLICATION_MAIN_CLASS} to Spark master ${SPARK_MASTER_URL}" 12 | echo "Passing arguments ${SPARK_APPLICATION_ARGS}" 13 | /spark/bin/spark-submit \ 14 | --class ${SPARK_APPLICATION_MAIN_CLASS} \ 15 | --master ${SPARK_MASTER_URL} \ 16 | ${SPARK_SUBMIT_ARGS} \ 17 | ${SPARK_APPLICATION_JAR_LOCATION} ${SPARK_APPLICATION_ARGS} 18 | else 19 | if [ -f "${SPARK_APPLICATION_PYTHON_LOCATION}" ]; then 20 | echo "Submit application ${SPARK_APPLICATION_PYTHON_LOCATION} to Spark master ${SPARK_MASTER_URL}" 21 | echo "Passing arguments ${SPARK_APPLICATION_ARGS}" 22 | PYSPARK_PYTHON=python3 /spark/bin/spark-submit \ 23 | --master ${SPARK_MASTER_URL} \ 24 | ${SPARK_SUBMIT_ARGS} \ 25 | ${SPARK_APPLICATION_PYTHON_LOCATION} ${SPARK_APPLICATION_ARGS} 26 | else 27 | echo "Not recognized application." 28 | fi 29 | fi 30 | /finish-step.sh 31 | -------------------------------------------------------------------------------- /template/java/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM bde2020/spark-submit:3.0.0-hadoop3.2 2 | 3 | LABEL maintainer="Gezim Sejdiu , Giannis Mouchakis " 4 | 5 | ENV SPARK_APPLICATION_JAR_NAME application-1.0 6 | 7 | COPY template.sh / 8 | 9 | RUN apk add --no-cache openjdk8 maven\ 10 | && chmod +x /template.sh \ 11 | && mkdir -p /app \ 12 | && mkdir -p /usr/src/app 13 | 14 | # Copy the POM-file first, for separate dependency resolving and downloading 15 | ONBUILD COPY pom.xml /usr/src/app 16 | ONBUILD RUN cd /usr/src/app \ 17 | && mvn dependency:resolve 18 | ONBUILD RUN cd /usr/src/app \ 19 | && mvn verify 20 | 21 | # Copy the source code and build the application 22 | ONBUILD COPY . /usr/src/app 23 | ONBUILD RUN cd /usr/src/app \ 24 | && mvn clean package 25 | 26 | CMD ["/bin/bash", "/template.sh"] 27 | -------------------------------------------------------------------------------- /template/java/README.md: -------------------------------------------------------------------------------- 1 | # Spark Java template 2 | 3 | The Spark Java template image serves as a base image to build your own Java application to run on a Spark cluster. See [big-data-europe/docker-spark README](https://github.com/big-data-europe/docker-spark) for a description how to setup a Spark cluster. 4 | 5 | ### Package your application using Maven 6 | You can build and launch your Java application on a Spark cluster by extending this image with your sources. The template uses [Maven](https://maven.apache.org/) as build tool, so make sure you have a `pom.xml` file for your application specifying all the dependencies. 7 | 8 | The Maven `package` command must create an assembly JAR (or 'uber' JAR) containing your code and its dependencies. Spark and Hadoop dependencies should be listes as `provided`. The [Maven shade plugin](http://maven.apache.org/plugins/maven-shade-plugin/) provides a plugin to build such assembly JARs. 9 | 10 | ### Extending the Spark Java template with your application 11 | 12 | #### Steps to extend the Spark Java template 13 | 1. Create a Dockerfile in the root folder of your project (which also contains a `pom.xml`) 14 | 2. Extend the Spark Java template Docker image 15 | 3. Configure the following environment variables (unless the default value satisfies): 16 | * `SPARK_MASTER_NAME` (default: spark-master) 17 | * `SPARK_MASTER_PORT` (default: 7077) 18 | * `SPARK_APPLICATION_JAR_NAME` (default: application-1.0) 19 | * `SPARK_APPLICATION_MAIN_CLASS` (default: my.main.Application) 20 | * `SPARK_APPLICATION_ARGS` (default: "") 21 | 4. Build and run the image 22 | ``` 23 | docker build --rm=true -t bde/spark-app . 24 | docker run --name my-spark-app -e ENABLE_INIT_DAEMON=false --link spark-master:spark-master -d bde/spark-app 25 | ``` 26 | 27 | The sources in the project folder will be automatically added to `/usr/src/app` if you directly extend the Spark Java template image. Otherwise you will have to add and package the sources by yourself in your Dockerfile with the commands: 28 | 29 | COPY . /usr/src/app 30 | RUN cd /usr/src/app \ 31 | && mvn clean package 32 | 33 | If you overwrite the template's `CMD` in your Dockerfile, make sure to execute the `/template.sh` script at the end. 34 | 35 | #### Example Dockerfile 36 | ``` 37 | FROM bde2020/spark-java-template:2.4.0-hadoop2.7 38 | 39 | MAINTAINER Erika Pauwels 40 | MAINTAINER Gezim Sejdiu 41 | 42 | ENV SPARK_APPLICATION_JAR_NAME my-app-1.0-SNAPSHOT-with-dependencies 43 | ENV SPARK_APPLICATION_MAIN_CLASS eu.bde.my.Application 44 | ENV SPARK_APPLICATION_ARGS "foo bar baz" 45 | ``` 46 | 47 | #### Example application 48 | See [big-data-europe/demo-spark-sensor-data](https://github.com/big-data-europe/demo-spark-sensor-data). 49 | -------------------------------------------------------------------------------- /template/java/template.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd /usr/src/app 4 | cp target/${SPARK_APPLICATION_JAR_NAME}.jar ${SPARK_APPLICATION_JAR_LOCATION} 5 | 6 | sh /submit.sh 7 | -------------------------------------------------------------------------------- /template/python/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM bde2020/spark-submit:3.0.0-hadoop3.2 2 | 3 | LABEL maintainer="Gezim Sejdiu , Giannis Mouchakis " 4 | 5 | COPY template.sh / 6 | 7 | # Copy the requirements.txt first, for separate dependency resolving and downloading 8 | ONBUILD COPY requirements.txt /app/ 9 | ONBUILD RUN cd /app \ 10 | && pip3 install -r requirements.txt 11 | 12 | # Copy the source code 13 | ONBUILD COPY . /app 14 | 15 | CMD ["/bin/bash", "/template.sh"] 16 | -------------------------------------------------------------------------------- /template/python/README.md: -------------------------------------------------------------------------------- 1 | # Spark Python template 2 | 3 | The Spark Python template image serves as a base image to build your own Python application to run on a Spark cluster. See [big-data-europe/docker-spark README](https://github.com/big-data-europe/docker-spark) for a description how to setup a Spark cluster. 4 | 5 | ### Package your application using pip 6 | You can build and launch your Python application on a Spark cluster by extending this image with your sources. The template uses [pip](https://pip.pypa.io/en/stable/) to manage the dependencies of your 7 | project, so make sure you have a `requirements.txt` file in the root of your application specifying all the dependencies. 8 | 9 | ### Extending the Spark Python template with your application 10 | 11 | #### Steps to extend the Spark Python template 12 | 1. Create a Dockerfile in the root folder of your project (which also contains a `requirements.txt`) 13 | 2. Extend the Spark Python template Docker image 14 | 3. Configure the following environment variables (unless the default value satisfies): 15 | * `SPARK_MASTER_NAME` (default: spark-master) 16 | * `SPARK_MASTER_PORT` (default: 7077) 17 | * `SPARK_APPLICATION_PYTHON_LOCATION` (default: /app/app.py) 18 | * `SPARK_APPLICATION_ARGS` 19 | 4. Build and run the image 20 | ``` 21 | docker build --rm -t bde/spark-app . 22 | docker run --name my-spark-app -e ENABLE_INIT_DAEMON=false --link spark-master:spark-master -d bde/spark-app 23 | ``` 24 | 25 | The sources in the project folder will be automatically added to `/app` if you directly extend the Spark Python template image. Otherwise you will have to add the sources by yourself in your Dockerfile with the command: 26 | 27 | COPY . /app 28 | 29 | If you overwrite the template's `CMD` in your Dockerfile, make sure to execute the `/template.sh` script at the end. 30 | 31 | #### Example Dockerfile 32 | ``` 33 | FROM bde2020/spark-python-template:2.4.0-hadoop2.7 34 | 35 | MAINTAINER You 36 | 37 | ENV SPARK_APPLICATION_PYTHON_LOCATION /app/entrypoint.py 38 | ENV SPARK_APPLICATION_ARGS "foo bar baz" 39 | ``` 40 | 41 | #### Example application 42 | Coming soon 43 | -------------------------------------------------------------------------------- /template/python/template.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | sh /submit.sh 4 | -------------------------------------------------------------------------------- /template/scala/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM bde2020/spark-submit:3.0.0-hadoop3.2 2 | 3 | LABEL maintainer="Gezim Sejdiu , Giannis Mouchakis " 4 | 5 | ARG SBT_VERSION 6 | ENV SBT_VERSION=${SBT_VERSION:-1.3.12} 7 | 8 | RUN wget -O - https://piccolo.link/sbt-1.3.12.tgz | gunzip | tar -x -C /usr/local 9 | 10 | ENV PATH /usr/local/sbt/bin:${PATH} 11 | 12 | WORKDIR /app 13 | 14 | # Pre-install base libraries 15 | ADD build.sbt /app/ 16 | ADD plugins.sbt /app/project/ 17 | RUN sbt update 18 | 19 | COPY template.sh / 20 | 21 | ENV SPARK_APPLICATION_MAIN_CLASS Application 22 | 23 | # Copy the build.sbt first, for separate dependency resolving and downloading 24 | ONBUILD COPY build.sbt /app/ 25 | ONBUILD COPY project /app/project 26 | ONBUILD RUN sbt update 27 | 28 | # Copy the source code and build the application 29 | ONBUILD COPY . /app 30 | ONBUILD RUN sbt clean assembly 31 | 32 | CMD ["/template.sh"] 33 | -------------------------------------------------------------------------------- /template/scala/README.md: -------------------------------------------------------------------------------- 1 | # Spark Scala template 2 | 3 | The Spark Scala template image serves as a base image to build your own Scala 4 | application to run on a Spark cluster. See 5 | [big-data-europe/docker-spark README](https://github.com/big-data-europe/docker-spark) 6 | for a description how to setup a Spark cluster. 7 | 8 | ## Scala Console 9 | 10 | `sbt console` will create you a Spark Context for testing your code like the 11 | spark-shell: 12 | 13 | ``` 14 | docker run -it --rm bde2020/spark-scala-template sbt console 15 | ``` 16 | 17 | You can also use directly your Docker image and test your own code that way. 18 | 19 | ## Package your application using sbt 20 | 21 | You can build and launch your Scala application on a Spark cluster by extending 22 | this image with your sources. The template uses 23 | [sbt](http://www.scala-sbt.org) as build tool, so you should take the 24 | `build.sbt` file located in this directory and the `project` directory that 25 | includes the 26 | [sbt-assembly](https://github.com/sbt/sbt-assembly). 27 | 28 | When the Docker image is built using this template, you should get a Docker 29 | image that includes a fat JAR containing your application and all its 30 | dependencies. 31 | 32 | ### Extending the Spark Scala template with your application 33 | 34 | #### Steps to extend the Spark Scala template 35 | 36 | 1. Create a Dockerfile in the root folder of your project (which also contains 37 | a `build.sbt`) 38 | 2. Extend the Spark Scala template Docker image 39 | 3. Configure the following environment variables (unless the default value 40 | satisfies): 41 | * `SPARK_MASTER_NAME` (default: spark-master) 42 | * `SPARK_MASTER_PORT` (default: 7077) 43 | * `SPARK_APPLICATION_MAIN_CLASS` (default: Application) 44 | * `SPARK_APPLICATION_ARGS` (default: "") 45 | 4. Build and run the image: 46 | ``` 47 | docker build --rm=true -t bde/spark-app . 48 | docker run --name my-spark-app -e ENABLE_INIT_DAEMON=false --link spark-master:spark-master -d bde/spark-app 49 | ``` 50 | 51 | The sources in the project folder will be automatically added to `/usr/src/app` 52 | if you directly extend the Spark Scala template image. Otherwise you will have 53 | to add and package the sources by yourself in your Dockerfile with the 54 | commands: 55 | 56 | COPY . /usr/src/app 57 | RUN cd /usr/src/app && sbt clean assembly 58 | 59 | If you overwrite the template's `CMD` in your Dockerfile, make sure to execute 60 | the `/template.sh` script at the end. 61 | 62 | #### Example Dockerfile 63 | 64 | ``` 65 | FROM bde2020/spark-scala-template:2.4.0-hadoop2.7 66 | 67 | MAINTAINER Cecile Tonglet 68 | 69 | ENV SPARK_APPLICATION_MAIN_CLASS eu.bde.my.Application 70 | ENV SPARK_APPLICATION_ARGS "foo bar baz" 71 | ``` 72 | 73 | #### Example application 74 | 75 | TODO 76 | -------------------------------------------------------------------------------- /template/scala/build.sbt: -------------------------------------------------------------------------------- 1 | scalaVersion := "2.12.11" 2 | libraryDependencies ++= Seq( 3 | "org.apache.spark" %% "spark-sql" % "3.0.0" % "provided" 4 | ) 5 | -------------------------------------------------------------------------------- /template/scala/plugins.sbt: -------------------------------------------------------------------------------- 1 | addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.10") -------------------------------------------------------------------------------- /template/scala/template.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | SPARK_APPLICATION_JAR_LOCATION=`find /app/target -iname '*-assembly-*.jar' | head -n1` 4 | export SPARK_APPLICATION_JAR_LOCATION 5 | 6 | if [ -z "$SPARK_APPLICATION_JAR_LOCATION" ]; then 7 | echo "Can't find a file *-assembly-*.jar in /app/target" 8 | exit 1 9 | fi 10 | 11 | /submit.sh 12 | -------------------------------------------------------------------------------- /worker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM bde2020/spark-base:3.0.0-hadoop3.2 2 | 3 | LABEL maintainer="Gezim Sejdiu , Giannis Mouchakis " 4 | 5 | COPY worker.sh / 6 | 7 | ENV SPARK_WORKER_WEBUI_PORT 8081 8 | ENV SPARK_WORKER_LOG /spark/logs 9 | ENV SPARK_MASTER "spark://spark-master:7077" 10 | 11 | EXPOSE 8081 12 | 13 | CMD ["/bin/bash", "/worker.sh"] 14 | -------------------------------------------------------------------------------- /worker/README.md: -------------------------------------------------------------------------------- 1 | # Spark worker 2 | 3 | See [big-data-europe/docker-spark README](https://github.com/big-data-europe/docker-spark). -------------------------------------------------------------------------------- /worker/worker.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | . "/spark/sbin/spark-config.sh" 4 | 5 | . "/spark/bin/load-spark-env.sh" 6 | 7 | mkdir -p $SPARK_WORKER_LOG 8 | 9 | export SPARK_HOME=/spark 10 | 11 | ln -sf /dev/stdout $SPARK_WORKER_LOG/spark-worker.out 12 | 13 | /spark/sbin/../bin/spark-class org.apache.spark.deploy.worker.Worker \ 14 | --webui-port $SPARK_WORKER_WEBUI_PORT $SPARK_MASTER >> $SPARK_WORKER_LOG/spark-worker.out 15 | --------------------------------------------------------------------------------