<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Massively Scalable EDM with Spark</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Tristan Nixon Institute for Intelligent Systems</string-name>
          <email>t.nixon@memphis.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>BKT parameter fitting:</institution>
          ,
          <addr-line>brute-force, HMMs</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Memphis 365 Innovation Drive Memphis</institution>
          ,
          <addr-line>TN, USA, 38152</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>1 https://github.com/IEDMS/spark-tutorial 2 https://pslcdatashop.web.cmu.edu/ An overview to the different deployment options for Spark, including: Launching a Spark cluster on Amazon Web Services</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>An introduction to the Spark runtime model, including:
Any remaining time will be devoted to discussing potential
applications that participants may have in mind for their own data
or projects.</p>
    </sec>
    <sec id="sec-2">
      <title>1. INTRODUCTION</title>
      <p>The creation and availability of ever-larger datasets is motivating
the development of new distributed technologies to store and
process data across clusters of servers. Apache Spark has emerged
as the new standard platform for developing highly scalable cluster
computing applications. It offers a wide range of connectors to
numerous databases and enterprise data management systems, an
ever growing library of machine-learning algorithms and the ability
to process streaming data in near-realtime. Developers can write
their applications in Java, Scala, Python and R. Applications can be
run locally (for easy development and testing), and deployed to
dedicated clusters or on clusters leased from cloud-computing
providers.</p>
    </sec>
    <sec id="sec-3">
      <title>2. TUTORIAL</title>
      <p>This day-long tutorial will provide a hands-on introduction to
developing massively scalable machine learning and data mining
applications with Spark. Participants will be expected to follow
along with all examples on their own laptops throughout the
tutorial, and to collaborate in small groups. All code used in the
tutorial will either be taken from publicly available examples, or be
available for download from the IEDMS github repository1, and
made available under a very liberal open source license. All
examples will be designed to process a modestly sized sample of a
recent Cognitive Tutor dataset available from the PSLC DataShop2.
In advance of the day, participants will be given instructions on
how to install and configure Spark and Scala on their laptops, so
that they might arrive at the tutorial ready to begin. Throughout the
tutorial, participants will be given exercises and problems to solve
in small groups. This will give them experience with the material
as it is presented and hands-on practice with structuring a
distributed application in Spark.
2.1</p>
    </sec>
    <sec id="sec-4">
      <title>Outline</title>
      <p>The following material will be covered in the course of the tutorial:
•
•</p>
      <p>An overview and history of cluster computing and the
development of map-reduce
An example of a very simple map-reduce algorithm
(distributed word-count) in Spark
•
•
•
•
•
o
o</p>
      <sec id="sec-4-1">
        <title>Resilient distributed datasets (RDDs) RDD transformations and actions How Spark optimizes the execution of distributed computation</title>
        <p>Running spark programs locally on a single
machine</p>
        <p>Submitting applications to remote clusters</p>
      </sec>
      <sec id="sec-4-2">
        <title>An introduction to Spark streaming</title>
        <p>An introduction to SparkSQL and working with
DataFrames</p>
        <p>How to load and manipulate an EDM dataset
(KDD cup data)
Data representations needed to fit various
EDM algorithms
An introduction to Spark’s Machine learning library
MLib, including:</p>
      </sec>
      <sec id="sec-4-3">
        <title>Transformers and Estimators</title>
        <p>Chaining transformers into machine-learning
pipelines
Examples of common EDM algorithms in
Spark:
§</p>
      </sec>
      <sec id="sec-4-4">
        <title>IRT algorithms using logistic</title>
        <p>regression (AFM, PFM, IFM)</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list />
  </back>
</article>