├── .gitignore ├── LICENSE ├── README.md ├── example ├── .idea │ ├── .name │ ├── dbnavigator.xml │ ├── libraries │ │ ├── SBT__aopalliance_aopalliance_1_0_jar.xml │ │ ├── SBT__com_clearspring_analytics_stream_2_7_0_jar.xml │ │ ├── SBT__com_esotericsoftware_kryo_shaded_3_0_3_jar.xml │ │ ├── SBT__com_esotericsoftware_minlog_1_3_0_jar.xml │ │ ├── SBT__com_fasterxml_jackson_core_jackson_annotations_2_6_5_jar.xml │ │ ├── SBT__com_fasterxml_jackson_core_jackson_core_2_6_5_jar.xml │ │ ├── SBT__com_fasterxml_jackson_core_jackson_databind_2_6_5_jar.xml │ │ ├── SBT__com_fasterxml_jackson_module_jackson_module_paranamer_2_6_5_jar.xml │ │ ├── SBT__com_fasterxml_jackson_module_jackson_module_scala_2_11_2_6_5_jar.xml │ │ ├── SBT__com_google_code_findbugs_jsr305_1_3_9_jar.xml │ │ ├── SBT__com_google_guava_guava_14_0_1_jar.xml │ │ ├── SBT__com_google_inject_guice_3_0_jar.xml │ │ ├── SBT__com_google_protobuf_protobuf_java_2_5_0_jar.xml │ │ ├── SBT__com_ning_compress_lzf_1_0_3_jar.xml │ │ ├── SBT__com_thoughtworks_paranamer_paranamer_2_6_jar.xml │ │ ├── SBT__com_twitter_chill_2_11_0_8_0_jar.xml │ │ ├── SBT__com_twitter_chill_java_0_8_0_jar.xml │ │ ├── SBT__com_univocity_univocity_parsers_2_1_1_jar.xml │ │ ├── SBT__commons_beanutils_commons_beanutils_1_7_0_jar.xml │ │ ├── SBT__commons_beanutils_commons_beanutils_core_1_8_0_jar.xml │ │ ├── SBT__commons_cli_commons_cli_1_2_jar.xml │ │ ├── SBT__commons_codec_commons_codec_1_10_jar.xml │ │ ├── SBT__commons_collections_commons_collections_3_2_1_jar.xml │ │ ├── SBT__commons_configuration_commons_configuration_1_6_jar.xml │ │ ├── SBT__commons_digester_commons_digester_1_8_jar.xml │ │ ├── SBT__commons_httpclient_commons_httpclient_3_1_jar.xml │ │ ├── SBT__commons_io_commons_io_2_1_jar.xml │ │ ├── SBT__commons_lang_commons_lang_2_5_jar.xml │ │ ├── SBT__commons_net_commons_net_2_2_jar.xml │ │ ├── SBT__io_dropwizard_metrics_metrics_core_3_1_2_jar.xml │ │ ├── SBT__io_dropwizard_metrics_metrics_graphite_3_1_2_jar.xml │ │ ├── SBT__io_dropwizard_metrics_metrics_json_3_1_2_jar.xml │ │ ├── SBT__io_dropwizard_metrics_metrics_jvm_3_1_2_jar.xml │ │ ├── SBT__io_netty_netty_3_8_0_Final_jar.xml │ │ ├── SBT__io_netty_netty_all_4_0_29_Final_jar.xml │ │ ├── SBT__javax_annotation_javax_annotation_api_1_2_jar.xml │ │ ├── SBT__javax_inject_javax_inject_1_jar.xml │ │ ├── SBT__javax_servlet_javax_servlet_api_3_1_0_jar.xml │ │ ├── SBT__javax_validation_validation_api_1_1_0_Final_jar.xml │ │ ├── SBT__javax_ws_rs_javax_ws_rs_api_2_0_1_jar.xml │ │ ├── SBT__junit_junit_4_10_jar.xml │ │ ├── SBT__log4j_log4j_1_2_17_jar.xml │ │ ├── SBT__net_java_dev_jets3t_jets3t_0_7_1_jar.xml │ │ ├── SBT__net_jpountz_lz4_lz4_1_3_0_jar.xml │ │ ├── SBT__net_razorvine_pyrolite_4_9_jar.xml │ │ ├── SBT__net_sf_py4j_py4j_0_10_1_jar.xml │ │ ├── SBT__org_antlr_antlr4_runtime_4_5_3_jar.xml │ │ ├── SBT__org_apache_avro_avro_1_7_7_jar.xml │ │ ├── SBT__org_apache_avro_avro_ipc_1_7_7_jar.xml │ │ ├── SBT__org_apache_avro_avro_ipc_1_7_7_tests_jar.xml │ │ ├── SBT__org_apache_avro_avro_mapred_1_7_7_hadoop2_jar.xml │ │ ├── SBT__org_apache_commons_commons_compress_1_4_1_jar.xml │ │ ├── SBT__org_apache_commons_commons_lang3_3_3_2_jar.xml │ │ ├── SBT__org_apache_commons_commons_math3_3_4_1_jar.xml │ │ ├── SBT__org_apache_commons_commons_math_2_1_jar.xml │ │ ├── SBT__org_apache_curator_curator_client_2_4_0_jar.xml │ │ ├── SBT__org_apache_curator_curator_framework_2_4_0_jar.xml │ │ ├── SBT__org_apache_curator_curator_recipes_2_4_0_jar.xml │ │ ├── SBT__org_apache_hadoop_hadoop_annotations_2_2_0_jar.xml │ │ ├── SBT__org_apache_hadoop_hadoop_auth_2_2_0_jar.xml │ │ ├── SBT__org_apache_hadoop_hadoop_client_2_2_0_jar.xml │ │ ├── SBT__org_apache_hadoop_hadoop_common_2_2_0_jar.xml │ │ ├── SBT__org_apache_hadoop_hadoop_hdfs_2_2_0_jar.xml │ │ ├── SBT__org_apache_hadoop_hadoop_mapreduce_client_app_2_2_0_jar.xml │ │ ├── SBT__org_apache_hadoop_hadoop_mapreduce_client_common_2_2_0_jar.xml │ │ ├── SBT__org_apache_hadoop_hadoop_mapreduce_client_core_2_2_0_jar.xml │ │ ├── SBT__org_apache_hadoop_hadoop_mapreduce_client_jobclient_2_2_0_jar.xml │ │ ├── SBT__org_apache_hadoop_hadoop_mapreduce_client_shuffle_2_2_0_jar.xml │ │ ├── SBT__org_apache_hadoop_hadoop_yarn_api_2_2_0_jar.xml │ │ ├── SBT__org_apache_hadoop_hadoop_yarn_client_2_2_0_jar.xml │ │ ├── SBT__org_apache_hadoop_hadoop_yarn_common_2_2_0_jar.xml │ │ ├── SBT__org_apache_hadoop_hadoop_yarn_server_common_2_2_0_jar.xml │ │ ├── SBT__org_apache_ivy_ivy_2_4_0_jar.xml │ │ ├── SBT__org_apache_mesos_mesos_0_21_1_shaded_protobuf_jar.xml │ │ ├── SBT__org_apache_parquet_parquet_column_1_7_0_jar.xml │ │ ├── SBT__org_apache_parquet_parquet_common_1_7_0_jar.xml │ │ ├── SBT__org_apache_parquet_parquet_encoding_1_7_0_jar.xml │ │ ├── SBT__org_apache_parquet_parquet_format_2_3_0_incubating_jar.xml │ │ ├── SBT__org_apache_parquet_parquet_generator_1_7_0_jar.xml │ │ ├── SBT__org_apache_parquet_parquet_hadoop_1_7_0_jar.xml │ │ ├── SBT__org_apache_parquet_parquet_jackson_1_7_0_jar.xml │ │ ├── SBT__org_apache_spark_spark_catalyst_2_11_2_0_0_jar.xml │ │ ├── SBT__org_apache_spark_spark_core_2_11_2_0_0_jar.xml │ │ ├── SBT__org_apache_spark_spark_launcher_2_11_2_0_0_jar.xml │ │ ├── SBT__org_apache_spark_spark_network_common_2_11_2_0_0_jar.xml │ │ ├── SBT__org_apache_spark_spark_network_shuffle_2_11_2_0_0_jar.xml │ │ ├── SBT__org_apache_spark_spark_sketch_2_11_2_0_0_jar.xml │ │ ├── SBT__org_apache_spark_spark_sql_2_11_2_0_0_jar.xml │ │ ├── SBT__org_apache_spark_spark_tags_2_11_2_0_0_jar.xml │ │ ├── SBT__org_apache_spark_spark_unsafe_2_11_2_0_0_jar.xml │ │ ├── SBT__org_apache_xbean_xbean_asm5_shaded_4_4_jar.xml │ │ ├── SBT__org_apache_zookeeper_zookeeper_3_4_5_jar.xml │ │ ├── SBT__org_codehaus_jackson_jackson_core_asl_1_9_13_jar.xml │ │ ├── SBT__org_codehaus_jackson_jackson_mapper_asl_1_9_13_jar.xml │ │ ├── SBT__org_codehaus_janino_commons_compiler_2_7_8_jar.xml │ │ ├── SBT__org_codehaus_janino_janino_2_7_8_jar.xml │ │ ├── SBT__org_fusesource_leveldbjni_leveldbjni_all_1_8_jar.xml │ │ ├── SBT__org_glassfish_hk2_external_aopalliance_repackaged_2_4_0_b34_jar.xml │ │ ├── SBT__org_glassfish_hk2_external_javax_inject_2_4_0_b34_jar.xml │ │ ├── SBT__org_glassfish_hk2_hk2_api_2_4_0_b34_jar.xml │ │ ├── SBT__org_glassfish_hk2_hk2_locator_2_4_0_b34_jar.xml │ │ ├── SBT__org_glassfish_hk2_hk2_utils_2_4_0_b34_jar.xml │ │ ├── SBT__org_glassfish_hk2_osgi_resource_locator_1_0_1_jar.xml │ │ ├── SBT__org_glassfish_jersey_bundles_repackaged_jersey_guava_2_22_2_jar.xml │ │ ├── SBT__org_glassfish_jersey_containers_jersey_container_servlet_2_22_2_jar.xml │ │ ├── SBT__org_glassfish_jersey_containers_jersey_container_servlet_core_2_22_2_jar.xml │ │ ├── SBT__org_glassfish_jersey_core_jersey_client_2_22_2_jar.xml │ │ ├── SBT__org_glassfish_jersey_core_jersey_common_2_22_2_jar.xml │ │ ├── SBT__org_glassfish_jersey_core_jersey_server_2_22_2_jar.xml │ │ ├── SBT__org_glassfish_jersey_media_jersey_media_jaxb_2_22_2_jar.xml │ │ ├── SBT__org_hamcrest_hamcrest_core_1_1_jar.xml │ │ ├── SBT__org_javassist_javassist_3_18_1_GA_jar.xml │ │ ├── SBT__org_json4s_json4s_ast_2_11_3_2_11_jar.xml │ │ ├── SBT__org_json4s_json4s_core_2_11_3_2_11_jar.xml │ │ ├── SBT__org_json4s_json4s_jackson_2_11_3_2_11_jar.xml │ │ ├── SBT__org_mortbay_jetty_jetty_util_6_1_26_jar.xml │ │ ├── SBT__org_objenesis_objenesis_2_1_jar.xml │ │ ├── SBT__org_roaringbitmap_RoaringBitmap_0_5_11_jar.xml │ │ ├── SBT__org_scala_lang_modules_scala_parser_combinators_2_11_1_0_1_jar.xml │ │ ├── SBT__org_scala_lang_modules_scala_xml_2_11_1_0_2_jar.xml │ │ ├── SBT__org_scala_lang_scala_compiler_2_11_0_jar.xml │ │ ├── SBT__org_scala_lang_scala_library_2_11_8_jar.xml │ │ ├── SBT__org_scala_lang_scala_reflect_2_11_8_jar.xml │ │ ├── SBT__org_scala_lang_scalap_2_11_0_jar.xml │ │ ├── SBT__org_scalatest_scalatest_2_11_2_2_6_jar.xml │ │ ├── SBT__org_slf4j_jcl_over_slf4j_1_7_16_jar.xml │ │ ├── SBT__org_slf4j_jul_to_slf4j_1_7_16_jar.xml │ │ ├── SBT__org_slf4j_slf4j_api_1_7_16_jar.xml │ │ ├── SBT__org_slf4j_slf4j_log4j12_1_7_16_jar.xml │ │ ├── SBT__org_sonatype_sisu_inject_cglib_2_2_1_v20090111_jar.xml │ │ ├── SBT__org_spark_project_spark_unused_1_0_0_jar.xml │ │ ├── SBT__org_tukaani_xz_1_0_jar.xml │ │ ├── SBT__org_xerial_snappy_snappy_java_1_1_2_4_jar.xml │ │ ├── SBT__oro_oro_2_0_8_jar.xml │ │ └── SBT__xmlenc_xmlenc_0_52_jar.xml │ ├── misc.xml │ ├── modules.xml │ ├── modules │ │ ├── root-build.iml │ │ └── root.iml │ ├── sbt.xml │ ├── scala_compiler.xml │ └── workspace.xml ├── README.md ├── assignment.sbt ├── build.sbt ├── project │ ├── CommonBuild.scala │ ├── GradingFeedback.scala │ ├── ScalaTestRunner.scala │ ├── Settings.scala │ ├── StudentBuild.scala │ ├── StudentBuildLike.scala │ ├── StyleChecker.scala │ ├── build.properties │ ├── buildSettings.sbt │ └── plugins.sbt └── src │ ├── main │ └── scala │ │ ├── Main.scala │ │ └── example │ │ └── Lists.scala │ └── test │ └── scala │ └── example │ └── ListsSuite.scala ├── stackoverflow ├── assignment.sbt ├── build.sbt ├── project │ ├── CommonBuild.scala │ ├── GradingFeedback.scala │ ├── ScalaTestRunner.scala │ ├── Settings.scala │ ├── StudentBuild.scala │ ├── StudentBuildLike.scala │ ├── StyleChecker.scala │ ├── build.properties │ ├── buildSettings.sbt │ └── plugins.sbt └── src │ ├── main │ └── scala │ │ └── stackoverflow │ │ └── StackOverflow.scala │ └── test │ └── scala │ └── stackoverflow │ └── StackOverflowSuite.scala └── wikipedia ├── .idea ├── .name ├── dbnavigator.xml ├── libraries │ ├── SBT__aopalliance_aopalliance_1_0_jar.xml │ ├── SBT__com_clearspring_analytics_stream_2_7_0_jar.xml │ ├── SBT__com_esotericsoftware_kryo_shaded_3_0_3_jar.xml │ ├── SBT__com_esotericsoftware_minlog_1_3_0_jar.xml │ ├── SBT__com_fasterxml_jackson_core_jackson_annotations_2_6_5_jar.xml │ ├── SBT__com_fasterxml_jackson_core_jackson_core_2_6_5_jar.xml │ ├── SBT__com_fasterxml_jackson_core_jackson_databind_2_6_5_jar.xml │ ├── SBT__com_fasterxml_jackson_module_jackson_module_paranamer_2_6_5_jar.xml │ ├── SBT__com_fasterxml_jackson_module_jackson_module_scala_2_11_2_6_5_jar.xml │ ├── SBT__com_google_code_findbugs_jsr305_1_3_9_jar.xml │ ├── SBT__com_google_guava_guava_14_0_1_jar.xml │ ├── SBT__com_google_inject_guice_3_0_jar.xml │ ├── SBT__com_google_protobuf_protobuf_java_2_5_0_jar.xml │ ├── SBT__com_ning_compress_lzf_1_0_3_jar.xml │ ├── SBT__com_thoughtworks_paranamer_paranamer_2_6_jar.xml │ ├── SBT__com_twitter_chill_2_11_0_8_0_jar.xml │ ├── SBT__com_twitter_chill_java_0_8_0_jar.xml │ ├── SBT__commons_beanutils_commons_beanutils_1_7_0_jar.xml │ ├── SBT__commons_beanutils_commons_beanutils_core_1_8_0_jar.xml │ ├── SBT__commons_cli_commons_cli_1_2_jar.xml │ ├── SBT__commons_codec_commons_codec_1_4_jar.xml │ ├── SBT__commons_collections_commons_collections_3_2_1_jar.xml │ ├── SBT__commons_configuration_commons_configuration_1_6_jar.xml │ ├── SBT__commons_digester_commons_digester_1_8_jar.xml │ ├── SBT__commons_httpclient_commons_httpclient_3_1_jar.xml │ ├── SBT__commons_io_commons_io_2_1_jar.xml │ ├── SBT__commons_lang_commons_lang_2_5_jar.xml │ ├── SBT__commons_net_commons_net_2_2_jar.xml │ ├── SBT__io_dropwizard_metrics_metrics_core_3_1_2_jar.xml │ ├── SBT__io_dropwizard_metrics_metrics_graphite_3_1_2_jar.xml │ ├── SBT__io_dropwizard_metrics_metrics_json_3_1_2_jar.xml │ ├── SBT__io_dropwizard_metrics_metrics_jvm_3_1_2_jar.xml │ ├── SBT__io_netty_netty_3_8_0_Final_jar.xml │ ├── SBT__io_netty_netty_all_4_0_29_Final_jar.xml │ ├── SBT__javax_annotation_javax_annotation_api_1_2_jar.xml │ ├── SBT__javax_inject_javax_inject_1_jar.xml │ ├── SBT__javax_servlet_javax_servlet_api_3_1_0_jar.xml │ ├── SBT__javax_validation_validation_api_1_1_0_Final_jar.xml │ ├── SBT__javax_ws_rs_javax_ws_rs_api_2_0_1_jar.xml │ ├── SBT__junit_junit_4_10_jar.xml │ ├── SBT__log4j_log4j_1_2_17_jar.xml │ ├── SBT__net_java_dev_jets3t_jets3t_0_7_1_jar.xml │ ├── SBT__net_jpountz_lz4_lz4_1_3_0_jar.xml │ ├── SBT__net_razorvine_pyrolite_4_9_jar.xml │ ├── SBT__net_sf_py4j_py4j_0_10_1_jar.xml │ ├── SBT__org_apache_avro_avro_1_7_7_jar.xml │ ├── SBT__org_apache_avro_avro_ipc_1_7_7_jar.xml │ ├── SBT__org_apache_avro_avro_ipc_1_7_7_tests_jar.xml │ ├── SBT__org_apache_avro_avro_mapred_1_7_7_hadoop2_jar.xml │ ├── SBT__org_apache_commons_commons_compress_1_4_1_jar.xml │ ├── SBT__org_apache_commons_commons_lang3_3_3_2_jar.xml │ ├── SBT__org_apache_commons_commons_math3_3_4_1_jar.xml │ ├── SBT__org_apache_commons_commons_math_2_1_jar.xml │ ├── SBT__org_apache_curator_curator_client_2_4_0_jar.xml │ ├── SBT__org_apache_curator_curator_framework_2_4_0_jar.xml │ ├── SBT__org_apache_curator_curator_recipes_2_4_0_jar.xml │ ├── SBT__org_apache_hadoop_hadoop_annotations_2_2_0_jar.xml │ ├── SBT__org_apache_hadoop_hadoop_auth_2_2_0_jar.xml │ ├── SBT__org_apache_hadoop_hadoop_client_2_2_0_jar.xml │ ├── SBT__org_apache_hadoop_hadoop_common_2_2_0_jar.xml │ ├── SBT__org_apache_hadoop_hadoop_hdfs_2_2_0_jar.xml │ ├── SBT__org_apache_hadoop_hadoop_mapreduce_client_app_2_2_0_jar.xml │ ├── SBT__org_apache_hadoop_hadoop_mapreduce_client_common_2_2_0_jar.xml │ ├── SBT__org_apache_hadoop_hadoop_mapreduce_client_core_2_2_0_jar.xml │ ├── SBT__org_apache_hadoop_hadoop_mapreduce_client_jobclient_2_2_0_jar.xml │ ├── SBT__org_apache_hadoop_hadoop_mapreduce_client_shuffle_2_2_0_jar.xml │ ├── SBT__org_apache_hadoop_hadoop_yarn_api_2_2_0_jar.xml │ ├── SBT__org_apache_hadoop_hadoop_yarn_client_2_2_0_jar.xml │ ├── SBT__org_apache_hadoop_hadoop_yarn_common_2_2_0_jar.xml │ ├── SBT__org_apache_hadoop_hadoop_yarn_server_common_2_2_0_jar.xml │ ├── SBT__org_apache_ivy_ivy_2_4_0_jar.xml │ ├── SBT__org_apache_mesos_mesos_0_21_1_shaded_protobuf_jar.xml │ ├── SBT__org_apache_spark_spark_core_2_11_2_0_0_jar.xml │ ├── SBT__org_apache_spark_spark_launcher_2_11_2_0_0_jar.xml │ ├── SBT__org_apache_spark_spark_network_common_2_11_2_0_0_jar.xml │ ├── SBT__org_apache_spark_spark_network_shuffle_2_11_2_0_0_jar.xml │ ├── SBT__org_apache_spark_spark_tags_2_11_2_0_0_jar.xml │ ├── SBT__org_apache_spark_spark_unsafe_2_11_2_0_0_jar.xml │ ├── SBT__org_apache_xbean_xbean_asm5_shaded_4_4_jar.xml │ ├── SBT__org_apache_zookeeper_zookeeper_3_4_5_jar.xml │ ├── SBT__org_codehaus_jackson_jackson_core_asl_1_9_13_jar.xml │ ├── SBT__org_codehaus_jackson_jackson_mapper_asl_1_9_13_jar.xml │ ├── SBT__org_fusesource_leveldbjni_leveldbjni_all_1_8_jar.xml │ ├── SBT__org_glassfish_hk2_external_aopalliance_repackaged_2_4_0_b34_jar.xml │ ├── SBT__org_glassfish_hk2_external_javax_inject_2_4_0_b34_jar.xml │ ├── SBT__org_glassfish_hk2_hk2_api_2_4_0_b34_jar.xml │ ├── SBT__org_glassfish_hk2_hk2_locator_2_4_0_b34_jar.xml │ ├── SBT__org_glassfish_hk2_hk2_utils_2_4_0_b34_jar.xml │ ├── SBT__org_glassfish_hk2_osgi_resource_locator_1_0_1_jar.xml │ ├── SBT__org_glassfish_jersey_bundles_repackaged_jersey_guava_2_22_2_jar.xml │ ├── SBT__org_glassfish_jersey_containers_jersey_container_servlet_2_22_2_jar.xml │ ├── SBT__org_glassfish_jersey_containers_jersey_container_servlet_core_2_22_2_jar.xml │ ├── SBT__org_glassfish_jersey_core_jersey_client_2_22_2_jar.xml │ ├── SBT__org_glassfish_jersey_core_jersey_common_2_22_2_jar.xml │ ├── SBT__org_glassfish_jersey_core_jersey_server_2_22_2_jar.xml │ ├── SBT__org_glassfish_jersey_media_jersey_media_jaxb_2_22_2_jar.xml │ ├── SBT__org_hamcrest_hamcrest_core_1_1_jar.xml │ ├── SBT__org_javassist_javassist_3_18_1_GA_jar.xml │ ├── SBT__org_json4s_json4s_ast_2_11_3_2_11_jar.xml │ ├── SBT__org_json4s_json4s_core_2_11_3_2_11_jar.xml │ ├── SBT__org_json4s_json4s_jackson_2_11_3_2_11_jar.xml │ ├── SBT__org_mortbay_jetty_jetty_util_6_1_26_jar.xml │ ├── SBT__org_objenesis_objenesis_2_1_jar.xml │ ├── SBT__org_roaringbitmap_RoaringBitmap_0_5_11_jar.xml │ ├── SBT__org_scala_lang_modules_scala_parser_combinators_2_11_1_0_1_jar.xml │ ├── SBT__org_scala_lang_modules_scala_xml_2_11_1_0_2_jar.xml │ ├── SBT__org_scala_lang_scala_compiler_2_11_0_jar.xml │ ├── SBT__org_scala_lang_scala_library_2_11_8_jar.xml │ ├── SBT__org_scala_lang_scala_reflect_2_11_7_jar.xml │ ├── SBT__org_scala_lang_scalap_2_11_0_jar.xml │ ├── SBT__org_scalatest_scalatest_2_11_2_2_6_jar.xml │ ├── SBT__org_slf4j_jcl_over_slf4j_1_7_16_jar.xml │ ├── SBT__org_slf4j_jul_to_slf4j_1_7_16_jar.xml │ ├── SBT__org_slf4j_slf4j_api_1_7_16_jar.xml │ ├── SBT__org_slf4j_slf4j_log4j12_1_7_16_jar.xml │ ├── SBT__org_sonatype_sisu_inject_cglib_2_2_1_v20090111_jar.xml │ ├── SBT__org_spark_project_spark_unused_1_0_0_jar.xml │ ├── SBT__org_tukaani_xz_1_0_jar.xml │ ├── SBT__org_xerial_snappy_snappy_java_1_1_2_4_jar.xml │ ├── SBT__oro_oro_2_0_8_jar.xml │ └── SBT__xmlenc_xmlenc_0_52_jar.xml ├── misc.xml ├── modules.xml ├── modules │ ├── root-build.iml │ └── root.iml ├── sbt.xml ├── scala_compiler.xml └── workspace.xml ├── assignment.sbt ├── build.sbt ├── project ├── CommonBuild.scala ├── GradingFeedback.scala ├── ScalaTestRunner.scala ├── Settings.scala ├── StudentBuild.scala ├── StudentBuildLike.scala ├── StyleChecker.scala ├── build.properties ├── buildSettings.sbt └── plugins.sbt └── src ├── main └── scala │ └── wikipedia │ ├── WikipediaData.scala │ └── WikipediaRanking.scala └── test └── scala └── wikipedia └── WikipediaSuite.scala /.gitignore: -------------------------------------------------------------------------------- 1 | *.class 2 | *.log 3 | *.csv 4 | 5 | # sbt specific 6 | .cache 7 | .history 8 | .lib/ 9 | dist/* 10 | target/ 11 | lib_managed/ 12 | src_managed/ 13 | project/boot/ 14 | project/plugins/project/ 15 | 16 | # Scala-IDE specific 17 | .scala_dependencies 18 | .worksheet 19 | *.dat 20 | 21 | .idea/ 22 | *.xml 23 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Amir Ziai 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # big-data-scala-spark 2 | 1. Wikipedia 3 | 2. Stackoverflow 4 | 3. Coming soon 5 | -------------------------------------------------------------------------------- /example/.idea/.name: -------------------------------------------------------------------------------- 1 | bigdata-example -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__aopalliance_aopalliance_1_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__com_clearspring_analytics_stream_2_7_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__com_esotericsoftware_kryo_shaded_3_0_3_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__com_esotericsoftware_minlog_1_3_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__com_fasterxml_jackson_core_jackson_annotations_2_6_5_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__com_fasterxml_jackson_core_jackson_core_2_6_5_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__com_fasterxml_jackson_core_jackson_databind_2_6_5_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__com_fasterxml_jackson_module_jackson_module_paranamer_2_6_5_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__com_fasterxml_jackson_module_jackson_module_scala_2_11_2_6_5_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__com_google_code_findbugs_jsr305_1_3_9_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__com_google_guava_guava_14_0_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__com_google_inject_guice_3_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__com_google_protobuf_protobuf_java_2_5_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__com_ning_compress_lzf_1_0_3_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__com_thoughtworks_paranamer_paranamer_2_6_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__com_twitter_chill_2_11_0_8_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__com_twitter_chill_java_0_8_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__com_univocity_univocity_parsers_2_1_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__commons_beanutils_commons_beanutils_1_7_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__commons_beanutils_commons_beanutils_core_1_8_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__commons_cli_commons_cli_1_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__commons_codec_commons_codec_1_10_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__commons_collections_commons_collections_3_2_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__commons_configuration_commons_configuration_1_6_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__commons_digester_commons_digester_1_8_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__commons_httpclient_commons_httpclient_3_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__commons_io_commons_io_2_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__commons_lang_commons_lang_2_5_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__commons_net_commons_net_2_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__io_dropwizard_metrics_metrics_core_3_1_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__io_dropwizard_metrics_metrics_graphite_3_1_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__io_dropwizard_metrics_metrics_json_3_1_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__io_dropwizard_metrics_metrics_jvm_3_1_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__io_netty_netty_3_8_0_Final_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__io_netty_netty_all_4_0_29_Final_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__javax_annotation_javax_annotation_api_1_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__javax_inject_javax_inject_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__javax_servlet_javax_servlet_api_3_1_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__javax_validation_validation_api_1_1_0_Final_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__javax_ws_rs_javax_ws_rs_api_2_0_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__junit_junit_4_10_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__log4j_log4j_1_2_17_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__net_java_dev_jets3t_jets3t_0_7_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__net_jpountz_lz4_lz4_1_3_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__net_razorvine_pyrolite_4_9_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__net_sf_py4j_py4j_0_10_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_antlr_antlr4_runtime_4_5_3_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_avro_avro_1_7_7_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_avro_avro_ipc_1_7_7_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_avro_avro_ipc_1_7_7_tests_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_avro_avro_mapred_1_7_7_hadoop2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_commons_commons_compress_1_4_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_commons_commons_lang3_3_3_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_commons_commons_math3_3_4_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_commons_commons_math_2_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_curator_curator_client_2_4_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_curator_curator_framework_2_4_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_curator_curator_recipes_2_4_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_hadoop_hadoop_annotations_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_hadoop_hadoop_auth_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_hadoop_hadoop_client_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_hadoop_hadoop_common_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_hadoop_hadoop_hdfs_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_hadoop_hadoop_mapreduce_client_app_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_hadoop_hadoop_mapreduce_client_common_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_hadoop_hadoop_mapreduce_client_core_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_hadoop_hadoop_mapreduce_client_jobclient_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_hadoop_hadoop_mapreduce_client_shuffle_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_hadoop_hadoop_yarn_api_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_hadoop_hadoop_yarn_client_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_hadoop_hadoop_yarn_common_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_hadoop_hadoop_yarn_server_common_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_ivy_ivy_2_4_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_mesos_mesos_0_21_1_shaded_protobuf_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_parquet_parquet_column_1_7_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_parquet_parquet_common_1_7_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_parquet_parquet_encoding_1_7_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_parquet_parquet_format_2_3_0_incubating_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_parquet_parquet_generator_1_7_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_parquet_parquet_hadoop_1_7_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_parquet_parquet_jackson_1_7_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_spark_spark_catalyst_2_11_2_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_spark_spark_core_2_11_2_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_spark_spark_launcher_2_11_2_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_spark_spark_network_common_2_11_2_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_spark_spark_network_shuffle_2_11_2_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_spark_spark_sketch_2_11_2_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_spark_spark_sql_2_11_2_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_spark_spark_tags_2_11_2_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_spark_spark_unsafe_2_11_2_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_xbean_xbean_asm5_shaded_4_4_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_apache_zookeeper_zookeeper_3_4_5_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_codehaus_jackson_jackson_core_asl_1_9_13_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_codehaus_jackson_jackson_mapper_asl_1_9_13_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_codehaus_janino_commons_compiler_2_7_8_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_codehaus_janino_janino_2_7_8_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_fusesource_leveldbjni_leveldbjni_all_1_8_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_glassfish_hk2_external_aopalliance_repackaged_2_4_0_b34_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_glassfish_hk2_external_javax_inject_2_4_0_b34_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_glassfish_hk2_hk2_api_2_4_0_b34_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_glassfish_hk2_hk2_locator_2_4_0_b34_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_glassfish_hk2_hk2_utils_2_4_0_b34_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_glassfish_hk2_osgi_resource_locator_1_0_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_glassfish_jersey_bundles_repackaged_jersey_guava_2_22_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_glassfish_jersey_containers_jersey_container_servlet_2_22_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_glassfish_jersey_containers_jersey_container_servlet_core_2_22_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_glassfish_jersey_core_jersey_client_2_22_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_glassfish_jersey_core_jersey_common_2_22_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_glassfish_jersey_core_jersey_server_2_22_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_glassfish_jersey_media_jersey_media_jaxb_2_22_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_hamcrest_hamcrest_core_1_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_javassist_javassist_3_18_1_GA_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_json4s_json4s_ast_2_11_3_2_11_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_json4s_json4s_core_2_11_3_2_11_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_json4s_json4s_jackson_2_11_3_2_11_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_mortbay_jetty_jetty_util_6_1_26_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_objenesis_objenesis_2_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_roaringbitmap_RoaringBitmap_0_5_11_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_scala_lang_modules_scala_parser_combinators_2_11_1_0_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_scala_lang_modules_scala_xml_2_11_1_0_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_scala_lang_scala_compiler_2_11_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_scala_lang_scala_library_2_11_8_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_scala_lang_scala_reflect_2_11_8_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_scala_lang_scalap_2_11_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_scalatest_scalatest_2_11_2_2_6_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_slf4j_jcl_over_slf4j_1_7_16_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_slf4j_jul_to_slf4j_1_7_16_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_slf4j_slf4j_api_1_7_16_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_slf4j_slf4j_log4j12_1_7_16_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_sonatype_sisu_inject_cglib_2_2_1_v20090111_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_spark_project_spark_unused_1_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_tukaani_xz_1_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__org_xerial_snappy_snappy_java_1_1_2_4_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__oro_oro_2_0_8_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /example/.idea/libraries/SBT__xmlenc_xmlenc_0_52_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /example/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 1.8 11 | 12 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /example/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /example/.idea/sbt.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | -------------------------------------------------------------------------------- /example/.idea/scala_compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | -------------------------------------------------------------------------------- /example/README.md: -------------------------------------------------------------------------------- 1 | # scala and sbt warmup 2 | -------------------------------------------------------------------------------- /example/assignment.sbt: -------------------------------------------------------------------------------- 1 | course := "bigdata" 2 | assignment := "example" 3 | -------------------------------------------------------------------------------- /example/build.sbt: -------------------------------------------------------------------------------- 1 | name := course.value + "-" + assignment.value 2 | 3 | scalaVersion := "2.11.8" 4 | 5 | scalacOptions ++= Seq("-deprecation") 6 | 7 | courseId := "e8VseYIYEeWxQQoymFg8zQ" 8 | 9 | resolvers += Resolver.sonatypeRepo("releases") 10 | 11 | // grading libraries 12 | libraryDependencies += "junit" % "junit" % "4.10" % "test" 13 | libraryDependencies ++= assignmentsMap.value.values.flatMap(_.dependencies).toSeq 14 | 15 | // include the common dir 16 | commonSourcePackages += "common" 17 | 18 | assignmentsMap := { 19 | val depsSpark = Seq( 20 | "org.apache.spark" %% "spark-core" % "2.0.0" 21 | ) 22 | Map( 23 | "example" -> Assignment( 24 | packageName = "example", 25 | key = "9W3VuiJREeaFaw43_UrNUw", 26 | itemId = "I6L8m", 27 | partId = "vsJoj", 28 | maxScore = 10d, 29 | dependencies = Seq(), 30 | options = Map("Xmx"->"1540m", "grader-memory"->"2048")), 31 | "wikipedia" -> Assignment( 32 | packageName = "wikipedia", 33 | key = "EH8wby4kEeawURILfHIqjw", 34 | itemId = "QcWcs", 35 | partId = "5komc", 36 | maxScore = 10d, 37 | styleScoreRatio = 0.0, 38 | dependencies = depsSpark, 39 | options = Map("Xmx"->"1540m", "grader-memory"->"2048", "totalTimeout" -> "900", "grader-cpu" -> "2")), 40 | "stackoverflow" -> Assignment( 41 | packageName = "stackoverflow", 42 | key = "7ByAoS4kEea1yxIfJA1CUw", 43 | itemId = "FWGnz", 44 | partId = "OY5fJ", 45 | maxScore = 10d, 46 | styleScoreRatio = 0.0, 47 | dependencies = depsSpark, 48 | options = Map("Xmx"->"1540m", "grader-memory"->"2048", "totalTimeout" -> "900", "grader-cpu" -> "2")), 49 | "timeusage" -> Assignment( 50 | packageName = "timeusage", 51 | key = "mVk0fgQ0EeeGZQrYVAT1jg", 52 | itemId = "T19Ec", 53 | partId = "y8PO8CUSTOM", 54 | maxScore = 10d, 55 | styleScoreRatio = 0.0, 56 | dependencies = depsSpark :+ ("org.apache.spark" %% "spark-sql" % "2.0.0"), 57 | options = Map("Xmx"->"1540m", "grader-memory"->"2048", "totalTimeout" -> "900", "grader-cpu" -> "2")) 58 | ) 59 | } 60 | 61 | -------------------------------------------------------------------------------- /example/project/CommonBuild.scala: -------------------------------------------------------------------------------- 1 | import sbt._ 2 | 3 | /** 4 | * @param packageName Used as the prefix for: (1) handout name, (2) the Scala package, (3) source folder. 5 | * @param key Per assignment key specified by coursera. 6 | * @param partId Identifies the part of the assignment. (We always have one-part assignments.) 7 | * @param maxScore Maximum score that can be given for the assignment. Must match the value in the WebAPI. 8 | * @param styleScoreRatio Defines the portion of the grade that is assigned to style. 9 | * @param dependencies Library dependencies specific to this module. 10 | * @param styleSheet Path to the scalastyle configuration for this assignment. 11 | * @param options Options passed to the java process or coursera infrastructure. Following values are 12 | * supported: 13 | * 14 | * NAME DEFAULT DESCRIPTION 15 | * Xms 10m -Xms for jvm 16 | * Xmx 256m -Xmx for jvm, should less than `grader-memory` 17 | * individualTimeout 240 time out of one test case 18 | * totalTimeout 850 total time out, should less than `grader-timeout` 19 | * grader-cpu 1 number of cpu for coursera infrastructure 20 | * grader-memory 1024 memory for coursera infrastructure 21 | * grader-timeout 1200 grading timeout for coursera infrastructure 22 | */ 23 | case class Assignment(packageName: String, 24 | key: String, 25 | itemId: String, 26 | partId: String, 27 | maxScore: Double, 28 | styleScoreRatio: Double = 0.0d, 29 | styleSheet: String = "", 30 | dependencies: Seq[ModuleID] = Seq(), 31 | options: Map[String, String] = Map()) { 32 | assert(!(styleScoreRatio == 0.0d ^ styleSheet == ""), "Style sheet and style ratio should be defined in pair.") 33 | } 34 | 35 | 36 | trait CommonBuild extends Build { 37 | 38 | val course = SettingKey[String]("course") 39 | 40 | val assignment = SettingKey[String]("assignment") 41 | 42 | val assignmentsMap = SettingKey[Map[String, Assignment]]("assignmentsMap") 43 | 44 | val courseId = SettingKey[String]("courseId") 45 | 46 | val commonSourcePackages = SettingKey[Seq[String]]("commonSourcePackages") 47 | 48 | lazy val scalaTestDependency = "org.scalatest" %% "scalatest" % "2.2.4" 49 | } 50 | -------------------------------------------------------------------------------- /example/project/Settings.scala: -------------------------------------------------------------------------------- 1 | object Settings { 2 | val maxSubmitFileSize = { 3 | val mb = 1024 * 1024 4 | 10 * mb 5 | } 6 | 7 | val testResultsFileName = "grading-results-log" 8 | 9 | // time in seconds that we give scalatest for running 10 | val scalaTestTimeout = 850 // coursera has a 15 minute timeout anyhow 11 | val individualTestTimeout = 240 12 | 13 | // default weight of each test in a GradingSuite, in case no weight is given 14 | val scalaTestDefaultWeight = 10 15 | 16 | // when students leave print statements in their code, they end up in the output of the 17 | // system process running ScalaTest (ScalaTestRunner.scala); we need some limits. 18 | val maxOutputLines = 10 * 1000 19 | val maxOutputLineLength = 1000 20 | 21 | val scalaTestReportFileProperty = "scalatest.reportFile" 22 | val scalaTestIndividualTestTimeoutProperty = "scalatest.individualTestTimeout" 23 | val scalaTestReadableFilesProperty = "scalatest.readableFiles" 24 | val scalaTestDefaultWeightProperty = "scalatest.defaultWeight" 25 | val scalaTestReporter = "ch.epfl.lamp.grading.GradingReporter" 26 | 27 | } 28 | -------------------------------------------------------------------------------- /example/project/StudentBuild.scala: -------------------------------------------------------------------------------- 1 | object StudentBuild extends StudentBuildLike 2 | -------------------------------------------------------------------------------- /example/project/StyleChecker.scala: -------------------------------------------------------------------------------- 1 | import sbt.File 2 | import java.io.ByteArrayOutputStream 3 | import java.io.PrintStream 4 | import org.scalastyle._ 5 | import com.typesafe.config.ConfigFactory 6 | 7 | object StyleChecker { 8 | val maxResult = 100 9 | 10 | class CustomTextOutput[T <: FileSpec](stream: PrintStream) extends Output[T] { 11 | private val messageHelper = new MessageHelper(ConfigFactory.load()) 12 | 13 | var fileCount: Int = _ 14 | override def message(m: Message[T]): Unit = m match { 15 | case StartWork() => 16 | case EndWork() => 17 | case StartFile(file) => 18 | stream.print("Checking file " + file + "...") 19 | fileCount = 0 20 | case EndFile(file) => 21 | if (fileCount == 0) stream.println(" OK!") 22 | case StyleError(file, clazz, key, level, args, line, column, customMessage) => 23 | report(line, column, messageHelper.text(level.name), 24 | Output.findMessage(messageHelper, key, args, customMessage)) 25 | case StyleException(file, clazz, message, stacktrace, line, column) => 26 | report(line, column, "error", message) 27 | } 28 | 29 | private def report(line: Option[Int], column: Option[Int], level: String, message: String) { 30 | if (fileCount == 0) stream.println("") 31 | fileCount += 1 32 | stream.println(" " + fileCount + ". " + level + pos(line, column) + ":") 33 | stream.println(" " + message) 34 | } 35 | 36 | private def pos(line: Option[Int], column: Option[Int]): String = line match { 37 | case Some(lineNumber) => " at line " + lineNumber + (column match { 38 | case Some(columnNumber) => " character " + columnNumber 39 | case None => "" 40 | }) 41 | case None => "" 42 | } 43 | } 44 | 45 | def score(outputResult: OutputResult) = { 46 | val penalties = outputResult.errors + outputResult.warnings 47 | scala.math.max(maxResult - penalties, 0) 48 | } 49 | 50 | def assess(sources: Seq[File], styleSheetPath: String): (String, Int) = { 51 | val configFile = new File(styleSheetPath).getAbsolutePath 52 | 53 | val messages = new ScalastyleChecker().checkFiles( 54 | ScalastyleConfiguration.readFromXml(configFile), 55 | Directory.getFiles(None, sources)) 56 | 57 | val output = new ByteArrayOutputStream() 58 | val outputResult = new CustomTextOutput(new PrintStream(output)).output(messages) 59 | 60 | val msg = s"""${output.toString} 61 | |Processed ${outputResult.files} file(s) 62 | |Found ${outputResult.errors} errors 63 | |Found ${outputResult.warnings} warnings 64 | |""".stripMargin 65 | 66 | (msg, score(outputResult)) 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /example/project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version=0.13.9 -------------------------------------------------------------------------------- /example/project/buildSettings.sbt: -------------------------------------------------------------------------------- 1 | // used for style-checking submissions 2 | libraryDependencies += "org.scalastyle" %% "scalastyle" % "0.8.0" 3 | 4 | // used for submitting the assignments to Coursera 5 | libraryDependencies += "org.scalaj" %% "scalaj-http" % "2.2.1" 6 | 7 | // used for base64 encoding 8 | libraryDependencies += "commons-codec" % "commons-codec" % "1.10" 9 | 10 | // used to escape json for the submission 11 | libraryDependencies += "org.apache.commons" % "commons-lang3" % "3.4" 12 | -------------------------------------------------------------------------------- /example/project/plugins.sbt: -------------------------------------------------------------------------------- 1 | addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0") 2 | addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.11") 3 | -------------------------------------------------------------------------------- /example/src/main/scala/Main.scala: -------------------------------------------------------------------------------- 1 | import example.Lists 2 | 3 | /** 4 | * Created by amir.ziai on 3/11/17. 5 | */ 6 | object Main extends App { 7 | println(Lists.max(List(1,3,2))) 8 | } 9 | -------------------------------------------------------------------------------- /example/src/main/scala/example/Lists.scala: -------------------------------------------------------------------------------- 1 | package example 2 | 3 | 4 | object Lists { 5 | 6 | /** 7 | * This method computes the sum of all elements in the list xs. There are 8 | * multiple techniques that can be used for implementing this method, and 9 | * you will learn during the class. 10 | * 11 | * For this example assignment you can use the following methods in class 12 | * `List`: 13 | * 14 | * - `xs.isEmpty: Boolean` returns `true` if the list `xs` is empty 15 | * - `xs.head: Int` returns the head element of the list `xs`. If the list 16 | * is empty an exception is thrown 17 | * - `xs.tail: List[Int]` returns the tail of the list `xs`, i.e. the the 18 | * list `xs` without its `head` element 19 | * 20 | * ''Hint:'' instead of writing a `for` or `while` loop, think of a recursive 21 | * solution. 22 | * 23 | * @param xs A list of natural numbers 24 | * @return The sum of all elements in `xs` 25 | */ 26 | def sum(xs: List[Int]): Int = xs.sum 27 | 28 | /** 29 | * This method returns the largest element in a list of integers. If the 30 | * list `xs` is empty it throws a `java.util.NoSuchElementException`. 31 | * 32 | * You can use the same methods of the class `List` as mentioned above. 33 | * 34 | * ''Hint:'' Again, think of a recursive solution instead of using looping 35 | * constructs. You might need to define an auxiliary method. 36 | * 37 | * @param xs A list of natural numbers 38 | * @return The largest element in `xs` 39 | * @throws java.util.NoSuchElementException if `xs` is an empty list 40 | */ 41 | def max(xs: List[Int]): Int = if (xs.nonEmpty) xs.max else throw new NoSuchElementException("No element here") 42 | } 43 | -------------------------------------------------------------------------------- /example/src/test/scala/example/ListsSuite.scala: -------------------------------------------------------------------------------- 1 | package example 2 | 3 | import org.scalatest.FunSuite 4 | 5 | import org.junit.runner.RunWith 6 | import org.scalatest.junit.JUnitRunner 7 | 8 | /** 9 | * This class implements a ScalaTest test suite for the methods in object 10 | * `Lists` that need to be implemented as part of this assignment. A test 11 | * suite is simply a collection of individual tests for some specific 12 | * component of a program. 13 | * 14 | * A test suite is created by defining a class which extends the type 15 | * `org.scalatest.FunSuite`. When running ScalaTest, it will automatically 16 | * find this class and execute all of its tests. 17 | * 18 | * Adding the `@RunWith` annotation enables the test suite to be executed 19 | * inside eclipse using the built-in JUnit test runner. 20 | * 21 | * You have two options for running this test suite: 22 | * 23 | * - Start the sbt console and run the "test" command 24 | * - Right-click this file in eclipse and chose "Run As" - "JUnit Test" 25 | */ 26 | @RunWith(classOf[JUnitRunner]) 27 | class ListsSuite extends FunSuite { 28 | 29 | /** 30 | * Tests are written using the `test` operator which takes two arguments: 31 | * 32 | * - A description of the test. This description has to be unique, no two 33 | * tests can have the same description. 34 | * - The test body, a piece of Scala code that implements the test 35 | * 36 | * The most common way to implement a test body is using the method `assert` 37 | * which tests that its argument evaluates to `true`. So one of the simplest 38 | * successful tests is the following: 39 | */ 40 | test("one plus one is two")(assert(1 + 1 == 2)) 41 | 42 | 43 | /** 44 | * In Scala, it is allowed to pass an argument to a method using the block 45 | * syntax, i.e. `{ argument }` instead of parentheses `(argument)`. 46 | * 47 | * This allows tests to be written in a more readable manner: 48 | */ 49 | test("one plus one is three?") { 50 | assert(1 + 1 == 2) // This assertion fails! Go ahead and fix it. 51 | } 52 | 53 | 54 | /** 55 | * One problem with the previous (failing) test is that ScalaTest will 56 | * only tell you that a test failed, but it will not tell you what was 57 | * the reason for the failure. The output looks like this: 58 | * 59 | * {{{ 60 | * [info] - one plus one is three? *** FAILED *** 61 | * }}} 62 | * 63 | * This situation can be improved by using a special equality operator 64 | * `===` instead of `==` (this is only possible in ScalaTest). So if you 65 | * run the next test, ScalaTest will show the following output: 66 | * 67 | * {{{ 68 | * [info] - details why one plus one is not three *** FAILED *** 69 | * [info] 2 did not equal 3 (ListsSuite.scala:67) 70 | * }}} 71 | * 72 | * We recommend to always use the `===` equality operator when writing tests. 73 | */ 74 | test("details why one plus one is not three") { 75 | assert(1 + 1 === 2) // Fix me, please! 76 | } 77 | 78 | /** 79 | * In order to test the exceptional behavior of a methods, ScalaTest offers 80 | * the `intercept` operation. 81 | * 82 | * In the following example, we test the fact that the method `intNotZero` 83 | * throws an `IllegalArgumentException` if its argument is `0`. 84 | */ 85 | test("intNotZero throws an exception if its argument is 0") { 86 | intercept[IllegalArgumentException] { 87 | intNotZero(0) 88 | } 89 | } 90 | 91 | def intNotZero(x: Int): Int = { 92 | if (x == 0) throw new IllegalArgumentException("zero is not allowed") 93 | else x 94 | } 95 | 96 | 97 | /** 98 | * Now we finally write some tests for the list functions that have to be 99 | * implemented for this assignment. We fist import all members of the 100 | * `List` object. 101 | */ 102 | import Lists._ 103 | 104 | 105 | /** 106 | * We only provide two very basic tests for you. Write more tests to make 107 | * sure your `sum` and `max` methods work as expected. 108 | * 109 | * In particular, write tests for corner cases: negative numbers, zeros, 110 | * empty lists, lists with repeated elements, etc. 111 | * 112 | * It is allowed to have multiple `assert` statements inside one test, 113 | * however it is recommended to write an individual `test` statement for 114 | * every tested aspect of a method. 115 | */ 116 | test("sum of a few numbers") { 117 | assert(sum(List(1,2,0)) === 3) 118 | } 119 | 120 | test("max of a few numbers") { 121 | assert(max(List(3, 7, 2)) === 7) 122 | } 123 | 124 | 125 | 126 | } 127 | -------------------------------------------------------------------------------- /stackoverflow/assignment.sbt: -------------------------------------------------------------------------------- 1 | course := "bigdata" 2 | assignment := "stackoverflow" 3 | -------------------------------------------------------------------------------- /stackoverflow/build.sbt: -------------------------------------------------------------------------------- 1 | name := course.value + "-" + assignment.value 2 | 3 | scalaVersion := "2.11.8" 4 | 5 | scalacOptions ++= Seq("-deprecation") 6 | 7 | courseId := "e8VseYIYEeWxQQoymFg8zQ" 8 | 9 | resolvers += Resolver.sonatypeRepo("releases") 10 | 11 | // grading libraries 12 | libraryDependencies += "junit" % "junit" % "4.10" % "test" 13 | libraryDependencies ++= assignmentsMap.value.values.flatMap(_.dependencies).toSeq 14 | 15 | // include the common dir 16 | commonSourcePackages += "common" 17 | 18 | assignmentsMap := { 19 | val depsSpark = Seq( 20 | "org.apache.spark" %% "spark-core" % "2.1.0" 21 | ) 22 | Map( 23 | "example" -> Assignment( 24 | packageName = "example", 25 | key = "9W3VuiJREeaFaw43_UrNUw", 26 | itemId = "I6L8m", 27 | partId = "vsJoj", 28 | maxScore = 10d, 29 | dependencies = Seq(), 30 | options = Map("Xmx"->"1540m", "grader-memory"->"2048")), 31 | "wikipedia" -> Assignment( 32 | packageName = "wikipedia", 33 | key = "EH8wby4kEeawURILfHIqjw", 34 | itemId = "QcWcs", 35 | partId = "5komc", 36 | maxScore = 10d, 37 | styleScoreRatio = 0.0, 38 | dependencies = depsSpark, 39 | options = Map("Xmx"->"1540m", "grader-memory"->"2048", "totalTimeout" -> "900", "grader-cpu" -> "2")), 40 | "stackoverflow" -> Assignment( 41 | packageName = "stackoverflow", 42 | key = "7ByAoS4kEea1yxIfJA1CUw", 43 | itemId = "FWGnz", 44 | partId = "OY5fJ", 45 | maxScore = 10d, 46 | styleScoreRatio = 0.0, 47 | dependencies = depsSpark, 48 | options = Map("Xmx"->"1540m", "grader-memory"->"2048", "totalTimeout" -> "900", "grader-cpu" -> "2")), 49 | "timeusage" -> Assignment( 50 | packageName = "timeusage", 51 | key = "mVk0fgQ0EeeGZQrYVAT1jg", 52 | itemId = "T19Ec", 53 | partId = "y8PO8", 54 | maxScore = 10d, 55 | styleScoreRatio = 0.0, 56 | dependencies = depsSpark :+ ("org.apache.spark" %% "spark-sql" % "2.1.0"), 57 | options = Map("Xmx"->"1540m", "grader-memory"->"2048", "totalTimeout" -> "900", "grader-cpu" -> "2")) 58 | ) 59 | } 60 | 61 | -------------------------------------------------------------------------------- /stackoverflow/project/CommonBuild.scala: -------------------------------------------------------------------------------- 1 | import sbt._ 2 | 3 | /** 4 | * @param packageName Used as the prefix for: (1) handout name, (2) the Scala package, (3) source folder. 5 | * @param key Per assignment key specified by coursera. 6 | * @param partId Identifies the part of the assignment. (We always have one-part assignments.) 7 | * @param maxScore Maximum score that can be given for the assignment. Must match the value in the WebAPI. 8 | * @param styleScoreRatio Defines the portion of the grade that is assigned to style. 9 | * @param dependencies Library dependencies specific to this module. 10 | * @param styleSheet Path to the scalastyle configuration for this assignment. 11 | * @param options Options passed to the java process or coursera infrastructure. Following values are 12 | * supported: 13 | * 14 | * NAME DEFAULT DESCRIPTION 15 | * Xms 10m -Xms for jvm 16 | * Xmx 256m -Xmx for jvm, should less than `grader-memory` 17 | * individualTimeout 240 time out of one test case 18 | * totalTimeout 850 total time out, should less than `grader-timeout` 19 | * grader-cpu 1 number of cpu for coursera infrastructure 20 | * grader-memory 1024 memory for coursera infrastructure 21 | * grader-timeout 1200 grading timeout for coursera infrastructure 22 | */ 23 | case class Assignment(packageName: String, 24 | key: String, 25 | itemId: String, 26 | partId: String, 27 | maxScore: Double, 28 | styleScoreRatio: Double = 0.0d, 29 | styleSheet: String = "", 30 | dependencies: Seq[ModuleID] = Seq(), 31 | options: Map[String, String] = Map()) { 32 | assert(!(styleScoreRatio == 0.0d ^ styleSheet == ""), "Style sheet and style ratio should be defined in pair.") 33 | } 34 | 35 | 36 | trait CommonBuild extends Build { 37 | 38 | val course = SettingKey[String]("course") 39 | 40 | val assignment = SettingKey[String]("assignment") 41 | 42 | val assignmentsMap = SettingKey[Map[String, Assignment]]("assignmentsMap") 43 | 44 | val courseId = SettingKey[String]("courseId") 45 | 46 | val commonSourcePackages = SettingKey[Seq[String]]("commonSourcePackages") 47 | 48 | lazy val scalaTestDependency = "org.scalatest" %% "scalatest" % "2.2.4" 49 | } 50 | -------------------------------------------------------------------------------- /stackoverflow/project/Settings.scala: -------------------------------------------------------------------------------- 1 | object Settings { 2 | val maxSubmitFileSize = { 3 | val mb = 1024 * 1024 4 | 10 * mb 5 | } 6 | 7 | val testResultsFileName = "grading-results-log" 8 | 9 | // time in seconds that we give scalatest for running 10 | val scalaTestTimeout = 850 // coursera has a 15 minute timeout anyhow 11 | val individualTestTimeout = 240 12 | 13 | // default weight of each test in a GradingSuite, in case no weight is given 14 | val scalaTestDefaultWeight = 10 15 | 16 | // when students leave print statements in their code, they end up in the output of the 17 | // system process running ScalaTest (ScalaTestRunner.scala); we need some limits. 18 | val maxOutputLines = 10 * 1000 19 | val maxOutputLineLength = 1000 20 | 21 | val scalaTestReportFileProperty = "scalatest.reportFile" 22 | val scalaTestIndividualTestTimeoutProperty = "scalatest.individualTestTimeout" 23 | val scalaTestReadableFilesProperty = "scalatest.readableFiles" 24 | val scalaTestDefaultWeightProperty = "scalatest.defaultWeight" 25 | val scalaTestReporter = "ch.epfl.lamp.grading.GradingReporter" 26 | 27 | } 28 | -------------------------------------------------------------------------------- /stackoverflow/project/StudentBuild.scala: -------------------------------------------------------------------------------- 1 | object StudentBuild extends StudentBuildLike 2 | -------------------------------------------------------------------------------- /stackoverflow/project/StyleChecker.scala: -------------------------------------------------------------------------------- 1 | import sbt.File 2 | import java.io.ByteArrayOutputStream 3 | import java.io.PrintStream 4 | import org.scalastyle._ 5 | import com.typesafe.config.ConfigFactory 6 | 7 | object StyleChecker { 8 | val maxResult = 100 9 | 10 | class CustomTextOutput[T <: FileSpec](stream: PrintStream) extends Output[T] { 11 | private val messageHelper = new MessageHelper(ConfigFactory.load()) 12 | 13 | var fileCount: Int = _ 14 | override def message(m: Message[T]): Unit = m match { 15 | case StartWork() => 16 | case EndWork() => 17 | case StartFile(file) => 18 | stream.print("Checking file " + file + "...") 19 | fileCount = 0 20 | case EndFile(file) => 21 | if (fileCount == 0) stream.println(" OK!") 22 | case StyleError(file, clazz, key, level, args, line, column, customMessage) => 23 | report(line, column, messageHelper.text(level.name), 24 | Output.findMessage(messageHelper, key, args, customMessage)) 25 | case StyleException(file, clazz, message, stacktrace, line, column) => 26 | report(line, column, "error", message) 27 | } 28 | 29 | private def report(line: Option[Int], column: Option[Int], level: String, message: String) { 30 | if (fileCount == 0) stream.println("") 31 | fileCount += 1 32 | stream.println(" " + fileCount + ". " + level + pos(line, column) + ":") 33 | stream.println(" " + message) 34 | } 35 | 36 | private def pos(line: Option[Int], column: Option[Int]): String = line match { 37 | case Some(lineNumber) => " at line " + lineNumber + (column match { 38 | case Some(columnNumber) => " character " + columnNumber 39 | case None => "" 40 | }) 41 | case None => "" 42 | } 43 | } 44 | 45 | def score(outputResult: OutputResult) = { 46 | val penalties = outputResult.errors + outputResult.warnings 47 | scala.math.max(maxResult - penalties, 0) 48 | } 49 | 50 | def assess(sources: Seq[File], styleSheetPath: String): (String, Int) = { 51 | val configFile = new File(styleSheetPath).getAbsolutePath 52 | 53 | val messages = new ScalastyleChecker().checkFiles( 54 | ScalastyleConfiguration.readFromXml(configFile), 55 | Directory.getFiles(None, sources)) 56 | 57 | val output = new ByteArrayOutputStream() 58 | val outputResult = new CustomTextOutput(new PrintStream(output)).output(messages) 59 | 60 | val msg = s"""${output.toString} 61 | |Processed ${outputResult.files} file(s) 62 | |Found ${outputResult.errors} errors 63 | |Found ${outputResult.warnings} warnings 64 | |""".stripMargin 65 | 66 | (msg, score(outputResult)) 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /stackoverflow/project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version=0.13.9 -------------------------------------------------------------------------------- /stackoverflow/project/buildSettings.sbt: -------------------------------------------------------------------------------- 1 | // used for style-checking submissions 2 | libraryDependencies += "org.scalastyle" %% "scalastyle" % "0.8.0" 3 | 4 | // used for submitting the assignments to Coursera 5 | libraryDependencies += "org.scalaj" %% "scalaj-http" % "2.2.1" 6 | 7 | // used for base64 encoding 8 | libraryDependencies += "commons-codec" % "commons-codec" % "1.10" 9 | 10 | // used to escape json for the submission 11 | libraryDependencies += "org.apache.commons" % "commons-lang3" % "3.4" 12 | -------------------------------------------------------------------------------- /stackoverflow/project/plugins.sbt: -------------------------------------------------------------------------------- 1 | addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.1.0") 2 | addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.11") 3 | 4 | addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.0-M15") 5 | -------------------------------------------------------------------------------- /stackoverflow/src/test/scala/stackoverflow/StackOverflowSuite.scala: -------------------------------------------------------------------------------- 1 | package stackoverflow 2 | 3 | import org.scalatest.{FunSuite, BeforeAndAfterAll} 4 | import org.junit.runner.RunWith 5 | import org.scalatest.junit.JUnitRunner 6 | import org.apache.spark.SparkConf 7 | import org.apache.spark.SparkContext 8 | import org.apache.spark.SparkContext._ 9 | import org.apache.spark.rdd.RDD 10 | import java.io.File 11 | 12 | @RunWith(classOf[JUnitRunner]) 13 | class StackOverflowSuite extends FunSuite with BeforeAndAfterAll { 14 | 15 | 16 | lazy val testObject = new StackOverflow { 17 | override val langs = 18 | List( 19 | "JavaScript", "Java", "PHP", "Python", "C#", "C++", "Ruby", "CSS", 20 | "Objective-C", "Perl", "Scala", "Haskell", "MATLAB", "Clojure", "Groovy") 21 | override def langSpread = 50000 22 | override def kmeansKernels = 45 23 | override def kmeansEta: Double = 20.0D 24 | override def kmeansMaxIterations = 120 25 | } 26 | 27 | test("testObject can be instantiated") { 28 | val instantiatable = try { 29 | testObject 30 | true 31 | } catch { 32 | case _: Throwable => false 33 | } 34 | assert(instantiatable, "Can't instantiate a StackOverflow object") 35 | } 36 | 37 | 38 | } 39 | -------------------------------------------------------------------------------- /wikipedia/.idea/.name: -------------------------------------------------------------------------------- 1 | bigdata-wikipedia -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__aopalliance_aopalliance_1_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__com_clearspring_analytics_stream_2_7_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__com_esotericsoftware_kryo_shaded_3_0_3_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__com_esotericsoftware_minlog_1_3_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__com_fasterxml_jackson_core_jackson_annotations_2_6_5_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__com_fasterxml_jackson_core_jackson_core_2_6_5_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__com_fasterxml_jackson_core_jackson_databind_2_6_5_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__com_fasterxml_jackson_module_jackson_module_paranamer_2_6_5_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__com_fasterxml_jackson_module_jackson_module_scala_2_11_2_6_5_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__com_google_code_findbugs_jsr305_1_3_9_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__com_google_guava_guava_14_0_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__com_google_inject_guice_3_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__com_google_protobuf_protobuf_java_2_5_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__com_ning_compress_lzf_1_0_3_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__com_thoughtworks_paranamer_paranamer_2_6_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__com_twitter_chill_2_11_0_8_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__com_twitter_chill_java_0_8_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__commons_beanutils_commons_beanutils_1_7_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__commons_beanutils_commons_beanutils_core_1_8_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__commons_cli_commons_cli_1_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__commons_codec_commons_codec_1_4_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__commons_collections_commons_collections_3_2_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__commons_configuration_commons_configuration_1_6_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__commons_digester_commons_digester_1_8_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__commons_httpclient_commons_httpclient_3_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__commons_io_commons_io_2_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__commons_lang_commons_lang_2_5_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__commons_net_commons_net_2_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__io_dropwizard_metrics_metrics_core_3_1_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__io_dropwizard_metrics_metrics_graphite_3_1_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__io_dropwizard_metrics_metrics_json_3_1_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__io_dropwizard_metrics_metrics_jvm_3_1_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__io_netty_netty_3_8_0_Final_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__io_netty_netty_all_4_0_29_Final_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__javax_annotation_javax_annotation_api_1_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__javax_inject_javax_inject_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__javax_servlet_javax_servlet_api_3_1_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__javax_validation_validation_api_1_1_0_Final_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__javax_ws_rs_javax_ws_rs_api_2_0_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__junit_junit_4_10_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__log4j_log4j_1_2_17_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__net_java_dev_jets3t_jets3t_0_7_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__net_jpountz_lz4_lz4_1_3_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__net_razorvine_pyrolite_4_9_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__net_sf_py4j_py4j_0_10_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_avro_avro_1_7_7_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_avro_avro_ipc_1_7_7_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_avro_avro_ipc_1_7_7_tests_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_avro_avro_mapred_1_7_7_hadoop2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_commons_commons_compress_1_4_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_commons_commons_lang3_3_3_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_commons_commons_math3_3_4_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_commons_commons_math_2_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_curator_curator_client_2_4_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_curator_curator_framework_2_4_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_curator_curator_recipes_2_4_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_hadoop_hadoop_annotations_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_hadoop_hadoop_auth_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_hadoop_hadoop_client_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_hadoop_hadoop_common_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_hadoop_hadoop_hdfs_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_hadoop_hadoop_mapreduce_client_app_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_hadoop_hadoop_mapreduce_client_common_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_hadoop_hadoop_mapreduce_client_core_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_hadoop_hadoop_mapreduce_client_jobclient_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_hadoop_hadoop_mapreduce_client_shuffle_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_hadoop_hadoop_yarn_api_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_hadoop_hadoop_yarn_client_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_hadoop_hadoop_yarn_common_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_hadoop_hadoop_yarn_server_common_2_2_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_ivy_ivy_2_4_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_mesos_mesos_0_21_1_shaded_protobuf_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_spark_spark_core_2_11_2_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_spark_spark_launcher_2_11_2_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_spark_spark_network_common_2_11_2_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_spark_spark_network_shuffle_2_11_2_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_spark_spark_tags_2_11_2_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_spark_spark_unsafe_2_11_2_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_xbean_xbean_asm5_shaded_4_4_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_apache_zookeeper_zookeeper_3_4_5_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_codehaus_jackson_jackson_core_asl_1_9_13_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_codehaus_jackson_jackson_mapper_asl_1_9_13_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_fusesource_leveldbjni_leveldbjni_all_1_8_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_glassfish_hk2_external_aopalliance_repackaged_2_4_0_b34_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_glassfish_hk2_external_javax_inject_2_4_0_b34_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_glassfish_hk2_hk2_api_2_4_0_b34_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_glassfish_hk2_hk2_locator_2_4_0_b34_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_glassfish_hk2_hk2_utils_2_4_0_b34_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_glassfish_hk2_osgi_resource_locator_1_0_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_glassfish_jersey_bundles_repackaged_jersey_guava_2_22_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_glassfish_jersey_containers_jersey_container_servlet_2_22_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_glassfish_jersey_containers_jersey_container_servlet_core_2_22_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_glassfish_jersey_core_jersey_client_2_22_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_glassfish_jersey_core_jersey_common_2_22_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_glassfish_jersey_core_jersey_server_2_22_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_glassfish_jersey_media_jersey_media_jaxb_2_22_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_hamcrest_hamcrest_core_1_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_javassist_javassist_3_18_1_GA_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_json4s_json4s_ast_2_11_3_2_11_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_json4s_json4s_core_2_11_3_2_11_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_json4s_json4s_jackson_2_11_3_2_11_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_mortbay_jetty_jetty_util_6_1_26_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_objenesis_objenesis_2_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_roaringbitmap_RoaringBitmap_0_5_11_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_scala_lang_modules_scala_parser_combinators_2_11_1_0_1_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_scala_lang_modules_scala_xml_2_11_1_0_2_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_scala_lang_scala_compiler_2_11_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_scala_lang_scala_library_2_11_8_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_scala_lang_scala_reflect_2_11_7_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_scala_lang_scalap_2_11_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_scalatest_scalatest_2_11_2_2_6_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_slf4j_jcl_over_slf4j_1_7_16_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_slf4j_jul_to_slf4j_1_7_16_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_slf4j_slf4j_api_1_7_16_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_slf4j_slf4j_log4j12_1_7_16_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_sonatype_sisu_inject_cglib_2_2_1_v20090111_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_spark_project_spark_unused_1_0_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_tukaani_xz_1_0_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__org_xerial_snappy_snappy_java_1_1_2_4_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__oro_oro_2_0_8_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wikipedia/.idea/libraries/SBT__xmlenc_xmlenc_0_52_jar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /wikipedia/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 1.8 11 | 12 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /wikipedia/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /wikipedia/.idea/sbt.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | -------------------------------------------------------------------------------- /wikipedia/.idea/scala_compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | -------------------------------------------------------------------------------- /wikipedia/assignment.sbt: -------------------------------------------------------------------------------- 1 | course := "bigdata" 2 | assignment := "wikipedia" -------------------------------------------------------------------------------- /wikipedia/build.sbt: -------------------------------------------------------------------------------- 1 | name := course.value + "-" + assignment.value 2 | 3 | scalaVersion := "2.11.8" 4 | 5 | scalacOptions ++= Seq("-deprecation") 6 | 7 | courseId := "e8VseYIYEeWxQQoymFg8zQ" 8 | 9 | resolvers += Resolver.sonatypeRepo("releases") 10 | 11 | // grading libraries 12 | libraryDependencies += "junit" % "junit" % "4.10" % "test" 13 | libraryDependencies ++= assignmentsMap.value.values.flatMap(_.dependencies).toSeq 14 | 15 | // include the common dir 16 | commonSourcePackages += "common" 17 | 18 | assignmentsMap := { 19 | val depsSpark = Seq( 20 | "org.apache.spark" %% "spark-core" % "2.0.0" 21 | ) 22 | Map( 23 | "example" -> Assignment( 24 | packageName = "example", 25 | key = "9W3VuiJREeaFaw43_UrNUw", 26 | itemId = "I6L8m", 27 | partId = "vsJoj", 28 | maxScore = 10d, 29 | dependencies = depsSpark, 30 | options = Map("Xmx"->"1540m", "grader-memory"->"2048")), 31 | "wikipedia" -> Assignment( 32 | packageName = "wikipedia", 33 | key = "EH8wby4kEeawURILfHIqjw", 34 | itemId = "QcWcs", 35 | partId = "5komc", 36 | maxScore = 10d, 37 | styleScoreRatio = 0.0, 38 | dependencies = depsSpark, 39 | options = Map("Xmx"->"1540m", "grader-memory"->"2048", "totalTimeout" -> "900", "grader-cpu" -> "2")), 40 | "stackoverflow" -> Assignment( 41 | packageName = "stackoverflow", 42 | key = "7ByAoS4kEea1yxIfJA1CUw", 43 | itemId = "FWGnz", 44 | partId = "OY5fJ", 45 | maxScore = 10d, 46 | styleScoreRatio = 0.0, 47 | dependencies = depsSpark, 48 | options = Map("Xmx"->"1540m", "grader-memory"->"2048", "totalTimeout" -> "900", "grader-cpu" -> "2")) 49 | ) 50 | } 51 | 52 | -------------------------------------------------------------------------------- /wikipedia/project/CommonBuild.scala: -------------------------------------------------------------------------------- 1 | import sbt._ 2 | 3 | /** 4 | * @param packageName Used as the prefix for: (1) handout name, (2) the Scala package, (3) source folder. 5 | * @param key Per assignment key specified by coursera. 6 | * @param partId Identifies the part of the assignment. (We always have one-part assignments.) 7 | * @param maxScore Maximum score that can be given for the assignment. Must match the value in the WebAPI. 8 | * @param styleScoreRatio Defines the portion of the grade that is assigned to style. 9 | * @param dependencies Library dependencies specific to this module. 10 | * @param styleSheet Path to the scalastyle configuration for this assignment. 11 | * @param options Options passed to the java process or coursera infrastructure. Following values are 12 | * supported: 13 | * 14 | * NAME DEFAULT DESCRIPTION 15 | * Xms 10m -Xms for jvm 16 | * Xmx 256m -Xmx for jvm, should less than `grader-memory` 17 | * individualTimeout 240 time out of one test case 18 | * totalTimeout 850 total time out, should less than `grader-timeout` 19 | * grader-cpu 1 number of cpu for coursera infrastructure 20 | * grader-memory 1024 memory for coursera infrastructure 21 | * grader-timeout 1200 grading timeout for coursera infrastructure 22 | */ 23 | case class Assignment(packageName: String, 24 | key: String, 25 | itemId: String, 26 | partId: String, 27 | maxScore: Double, 28 | styleScoreRatio: Double = 0.0d, 29 | styleSheet: String = "", 30 | dependencies: Seq[ModuleID] = Seq(), 31 | options: Map[String, String] = Map()) { 32 | assert(!(styleScoreRatio == 0.0d ^ styleSheet == ""), "Style sheet and style ratio should be defined in pair.") 33 | } 34 | 35 | 36 | trait CommonBuild extends Build { 37 | 38 | val course = SettingKey[String]("course") 39 | 40 | val assignment = SettingKey[String]("assignment") 41 | 42 | val assignmentsMap = SettingKey[Map[String, Assignment]]("assignmentsMap") 43 | 44 | val courseId = SettingKey[String]("courseId") 45 | 46 | val commonSourcePackages = SettingKey[Seq[String]]("commonSourcePackages") 47 | 48 | lazy val scalaTestDependency = "org.scalatest" %% "scalatest" % "2.2.4" 49 | } 50 | -------------------------------------------------------------------------------- /wikipedia/project/Settings.scala: -------------------------------------------------------------------------------- 1 | object Settings { 2 | val maxSubmitFileSize = { 3 | val mb = 1024 * 1024 4 | 10 * mb 5 | } 6 | 7 | val testResultsFileName = "grading-results-log" 8 | 9 | // time in seconds that we give scalatest for running 10 | val scalaTestTimeout = 850 // coursera has a 15 minute timeout anyhow 11 | val individualTestTimeout = 240 12 | 13 | // default weight of each test in a GradingSuite, in case no weight is given 14 | val scalaTestDefaultWeight = 10 15 | 16 | // when students leave print statements in their code, they end up in the output of the 17 | // system process running ScalaTest (ScalaTestRunner.scala); we need some limits. 18 | val maxOutputLines = 10 * 1000 19 | val maxOutputLineLength = 1000 20 | 21 | val scalaTestReportFileProperty = "scalatest.reportFile" 22 | val scalaTestIndividualTestTimeoutProperty = "scalatest.individualTestTimeout" 23 | val scalaTestReadableFilesProperty = "scalatest.readableFiles" 24 | val scalaTestDefaultWeightProperty = "scalatest.defaultWeight" 25 | val scalaTestReporter = "ch.epfl.lamp.grading.GradingReporter" 26 | 27 | } 28 | -------------------------------------------------------------------------------- /wikipedia/project/StudentBuild.scala: -------------------------------------------------------------------------------- 1 | object StudentBuild extends StudentBuildLike 2 | -------------------------------------------------------------------------------- /wikipedia/project/StyleChecker.scala: -------------------------------------------------------------------------------- 1 | import sbt.File 2 | import java.io.ByteArrayOutputStream 3 | import java.io.PrintStream 4 | import org.scalastyle._ 5 | import com.typesafe.config.ConfigFactory 6 | 7 | object StyleChecker { 8 | val maxResult = 100 9 | 10 | class CustomTextOutput[T <: FileSpec](stream: PrintStream) extends Output[T] { 11 | private val messageHelper = new MessageHelper(ConfigFactory.load()) 12 | 13 | var fileCount: Int = _ 14 | override def message(m: Message[T]): Unit = m match { 15 | case StartWork() => 16 | case EndWork() => 17 | case StartFile(file) => 18 | stream.print("Checking file " + file + "...") 19 | fileCount = 0 20 | case EndFile(file) => 21 | if (fileCount == 0) stream.println(" OK!") 22 | case StyleError(file, clazz, key, level, args, line, column, customMessage) => 23 | report(line, column, messageHelper.text(level.name), 24 | Output.findMessage(messageHelper, key, args, customMessage)) 25 | case StyleException(file, clazz, message, stacktrace, line, column) => 26 | report(line, column, "error", message) 27 | } 28 | 29 | private def report(line: Option[Int], column: Option[Int], level: String, message: String) { 30 | if (fileCount == 0) stream.println("") 31 | fileCount += 1 32 | stream.println(" " + fileCount + ". " + level + pos(line, column) + ":") 33 | stream.println(" " + message) 34 | } 35 | 36 | private def pos(line: Option[Int], column: Option[Int]): String = line match { 37 | case Some(lineNumber) => " at line " + lineNumber + (column match { 38 | case Some(columnNumber) => " character " + columnNumber 39 | case None => "" 40 | }) 41 | case None => "" 42 | } 43 | } 44 | 45 | def score(outputResult: OutputResult) = { 46 | val penalties = outputResult.errors + outputResult.warnings 47 | scala.math.max(maxResult - penalties, 0) 48 | } 49 | 50 | def assess(sources: Seq[File], styleSheetPath: String): (String, Int) = { 51 | val configFile = new File(styleSheetPath).getAbsolutePath 52 | 53 | val messages = new ScalastyleChecker().checkFiles( 54 | ScalastyleConfiguration.readFromXml(configFile), 55 | Directory.getFiles(None, sources)) 56 | 57 | val output = new ByteArrayOutputStream() 58 | val outputResult = new CustomTextOutput(new PrintStream(output)).output(messages) 59 | 60 | val msg = s"""${output.toString} 61 | |Processed ${outputResult.files} file(s) 62 | |Found ${outputResult.errors} errors 63 | |Found ${outputResult.warnings} warnings 64 | |""".stripMargin 65 | 66 | (msg, score(outputResult)) 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /wikipedia/project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version=0.13.9 -------------------------------------------------------------------------------- /wikipedia/project/buildSettings.sbt: -------------------------------------------------------------------------------- 1 | // used for style-checking submissions 2 | libraryDependencies += "org.scalastyle" %% "scalastyle" % "0.8.0" 3 | 4 | // used for submitting the assignments to Coursera 5 | libraryDependencies += "org.scalaj" %% "scalaj-http" % "2.2.1" 6 | 7 | // used for base64 encoding 8 | libraryDependencies += "commons-codec" % "commons-codec" % "1.10" 9 | 10 | // used to escape json for the submission 11 | libraryDependencies += "org.apache.commons" % "commons-lang3" % "3.4" 12 | -------------------------------------------------------------------------------- /wikipedia/project/plugins.sbt: -------------------------------------------------------------------------------- 1 | addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0") 2 | addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.11") 3 | -------------------------------------------------------------------------------- /wikipedia/src/main/scala/wikipedia/WikipediaData.scala: -------------------------------------------------------------------------------- 1 | package wikipedia 2 | 3 | import java.io.File 4 | 5 | object WikipediaData { 6 | 7 | private[wikipedia] def filePath = { 8 | new File(this.getClass.getClassLoader.getResource("wikipedia/wikipedia.dat").toURI).getPath 9 | } 10 | 11 | private[wikipedia] def parse(line: String): WikipediaArticle = { 12 | val subs = "" 13 | val i = line.indexOf(subs) 14 | val title = line.substring(14, i) 15 | val text = line.substring(i + subs.length, line.length-16) 16 | WikipediaArticle(title, text) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /wikipedia/src/test/scala/wikipedia/WikipediaSuite.scala: -------------------------------------------------------------------------------- 1 | package wikipedia 2 | 3 | import org.scalatest.{FunSuite, BeforeAndAfterAll} 4 | import org.junit.runner.RunWith 5 | import org.scalatest.junit.JUnitRunner 6 | 7 | import org.apache.spark.SparkConf 8 | import org.apache.spark.SparkContext 9 | import org.apache.spark.SparkContext._ 10 | 11 | @RunWith(classOf[JUnitRunner]) 12 | class WikipediaSuite extends FunSuite with BeforeAndAfterAll { 13 | 14 | def initializeWikipediaRanking(): Boolean = 15 | try { 16 | WikipediaRanking 17 | true 18 | } catch { 19 | case ex: Throwable => 20 | println(ex.getMessage) 21 | ex.printStackTrace() 22 | false 23 | } 24 | 25 | override def afterAll(): Unit = { 26 | assert(initializeWikipediaRanking(), " -- did you fill in all the values in WikipediaRanking (conf, sc, wikiRdd)?") 27 | import WikipediaRanking._ 28 | sc.stop() 29 | } 30 | 31 | // Conditions: 32 | // (1) the language stats contain the same elements 33 | // (2) they are ordered (and the order doesn't matter if there are several languages with the same count) 34 | def equivalentAndOrdered(given: List[(String, Int)], expected: List[(String, Int)]): Boolean = { 35 | /* (1) */ (given.toSet == expected.toSet) && 36 | /* (2) */!(given zip given.tail).exists({ case ((_, occ1), (_, occ2)) => occ1 < occ2 }) 37 | } 38 | 39 | test("'occurrencesOfLang' should work for (specific) RDD with one element") { 40 | assert(initializeWikipediaRanking(), " -- did you fill in all the values in WikipediaRanking (conf, sc, wikiRdd)?") 41 | import WikipediaRanking._ 42 | val rdd = sc.parallelize(Seq(WikipediaArticle("title", "Java Jakarta"))) 43 | val res = (occurrencesOfLang("Java", rdd) == 1) 44 | assert(res, "occurrencesOfLang given (specific) RDD with one element should equal to 1") 45 | } 46 | 47 | test("'rankLangs' should work for RDD with two elements") { 48 | assert(initializeWikipediaRanking(), " -- did you fill in all the values in WikipediaRanking (conf, sc, wikiRdd)?") 49 | import WikipediaRanking._ 50 | val langs = List("Scala", "Java") 51 | val rdd = sc.parallelize(List(WikipediaArticle("1", "Scala is great"), WikipediaArticle("2", "Java is OK, but Scala is cooler"))) 52 | val ranked = rankLangs(langs, rdd) 53 | val res = ranked.head._1 == "Scala" 54 | assert(res) 55 | } 56 | 57 | test("'makeIndex' creates a simple index with two entries") { 58 | assert(initializeWikipediaRanking(), " -- did you fill in all the values in WikipediaRanking (conf, sc, wikiRdd)?") 59 | import WikipediaRanking._ 60 | val langs = List("Scala", "Java") 61 | val articles = List( 62 | WikipediaArticle("1","Groovy is pretty interesting, and so is Erlang"), 63 | WikipediaArticle("2","Scala and Java run on the JVM"), 64 | WikipediaArticle("3","Scala is not purely functional") 65 | ) 66 | val rdd = sc.parallelize(articles) 67 | val index = makeIndex(langs, rdd) 68 | val res = index.count() == 2 69 | assert(res) 70 | } 71 | 72 | test("'rankLangsUsingIndex' should work for a simple RDD with three elements") { 73 | assert(initializeWikipediaRanking(), " -- did you fill in all the values in WikipediaRanking (conf, sc, wikiRdd)?") 74 | import WikipediaRanking._ 75 | val langs = List("Scala", "Java") 76 | val articles = List( 77 | WikipediaArticle("1","Groovy is pretty interesting, and so is Erlang"), 78 | WikipediaArticle("2","Scala and Java run on the JVM"), 79 | WikipediaArticle("3","Scala is not purely functional") 80 | ) 81 | val rdd = sc.parallelize(articles) 82 | val index = makeIndex(langs, rdd) 83 | val ranked = rankLangsUsingIndex(index) 84 | val res = (ranked.head._1 == "Scala") 85 | assert(res) 86 | } 87 | 88 | test("'rankLangsReduceByKey' should work for a simple RDD with four elements") { 89 | assert(initializeWikipediaRanking(), " -- did you fill in all the values in WikipediaRanking (conf, sc, wikiRdd)?") 90 | import WikipediaRanking._ 91 | val langs = List("Scala", "Java", "Groovy", "Haskell", "Erlang") 92 | val articles = List( 93 | WikipediaArticle("1","Groovy is pretty interesting, and so is Erlang"), 94 | WikipediaArticle("2","Scala and Java run on the JVM"), 95 | WikipediaArticle("3","Scala is not purely functional"), 96 | WikipediaArticle("4","The cool kids like Haskell more than Java"), 97 | WikipediaArticle("5","Java is for enterprise developers") 98 | ) 99 | val rdd = sc.parallelize(articles) 100 | val ranked = rankLangsReduceByKey(langs, rdd) 101 | val res = (ranked.head._1 == "Java") 102 | assert(res) 103 | } 104 | 105 | 106 | } 107 | --------------------------------------------------------------------------------