├── testdata ├── v100k.model ├── ladygaga.csv ├── ladygaga.arff ├── testdata.arff ├── kmeansdata.csv └── vehicledata.csv ├── scala ├── ScalaMRExample │ ├── project │ │ └── target │ │ │ └── config-classes │ │ │ ├── $4283b072697906b97b98.cache │ │ │ ├── $45474e939de4bffccb3d.cache │ │ │ ├── $9d3f59e239d4b5c16d1b.cache │ │ │ ├── $a893abe58622e3ff2461.cache │ │ │ ├── $d04997821e4e03c2e2fe.cache │ │ │ ├── $d0ad7a51f5327b280ca9.cache │ │ │ ├── $d91b7607e5b72769b41c.cache │ │ │ ├── $dcf33314bf554e92b36a.cache │ │ │ ├── $f2abbf2edcc2fae8fe21.cache │ │ │ ├── $f561da81d0e619dcd6e8.cache │ │ │ ├── $4283b072697906b97b98.class │ │ │ ├── $45474e939de4bffccb3d.class │ │ │ ├── $9d3f59e239d4b5c16d1b.class │ │ │ ├── $a893abe58622e3ff2461.class │ │ │ ├── $d04997821e4e03c2e2fe.class │ │ │ ├── $d0ad7a51f5327b280ca9.class │ │ │ ├── $d91b7607e5b72769b41c.class │ │ │ ├── $dcf33314bf554e92b36a.class │ │ │ ├── $f2abbf2edcc2fae8fe21.class │ │ │ ├── $f561da81d0e619dcd6e8.class │ │ │ ├── $4283b072697906b97b98$.class │ │ │ ├── $45474e939de4bffccb3d$.class │ │ │ ├── $9d3f59e239d4b5c16d1b$.class │ │ │ ├── $a893abe58622e3ff2461$.class │ │ │ ├── $d04997821e4e03c2e2fe$.class │ │ │ ├── $d0ad7a51f5327b280ca9$.class │ │ │ ├── $d91b7607e5b72769b41c$.class │ │ │ ├── $dcf33314bf554e92b36a$.class │ │ │ ├── $f2abbf2edcc2fae8fe21$.class │ │ │ ├── $f561da81d0e619dcd6e8$.class │ │ │ ├── $4283b072697906b97b98$$anonfun$$sbtdef$1.class │ │ │ ├── $45474e939de4bffccb3d$$anonfun$$sbtdef$1.class │ │ │ ├── $9d3f59e239d4b5c16d1b$$anonfun$$sbtdef$1.class │ │ │ ├── $a893abe58622e3ff2461$$anonfun$$sbtdef$1.class │ │ │ ├── $d04997821e4e03c2e2fe$$anonfun$$sbtdef$1.class │ │ │ ├── $d0ad7a51f5327b280ca9$$anonfun$$sbtdef$1.class │ │ │ ├── $d91b7607e5b72769b41c$$anonfun$$sbtdef$1.class │ │ │ ├── $dcf33314bf554e92b36a$$anonfun$$sbtdef$1.class │ │ │ ├── $f2abbf2edcc2fae8fe21$$anonfun$$sbtdef$1.class │ │ │ └── $f561da81d0e619dcd6e8$$anonfun$$sbtdef$1.class │ ├── scalamrexample.sbt │ └── src │ │ └── main │ │ └── scala │ │ └── ScalaMRExample.scala ├── SparkSQLExample │ ├── project │ │ └── target │ │ │ └── config-classes │ │ │ ├── $2b599b2d5e41bb62c14f.cache │ │ │ ├── $367c28e6db23547a21e6.cache │ │ │ ├── $5aeb8a289e6213dacf7a.cache │ │ │ ├── $5de1f2bd915ab4554340.cache │ │ │ ├── $77e1fe633e76693c6612.cache │ │ │ ├── $8e4819bdd18c0a7cf62a.cache │ │ │ ├── $9bb2c418c2ecd5b95e12.cache │ │ │ ├── $d4ae3578703e9ccfc5d5.cache │ │ │ ├── $d8244a46f64f08881cbd.cache │ │ │ ├── $d977aeb312a90dd927d2.cache │ │ │ ├── $dc1dc9ebb0fc056cb3d2.cache │ │ │ ├── $fb021b8802404a34ba8b.cache │ │ │ ├── $2b599b2d5e41bb62c14f$.class │ │ │ ├── $2b599b2d5e41bb62c14f.class │ │ │ ├── $367c28e6db23547a21e6$.class │ │ │ ├── $367c28e6db23547a21e6.class │ │ │ ├── $5aeb8a289e6213dacf7a$.class │ │ │ ├── $5aeb8a289e6213dacf7a.class │ │ │ ├── $5de1f2bd915ab4554340$.class │ │ │ ├── $5de1f2bd915ab4554340.class │ │ │ ├── $77e1fe633e76693c6612$.class │ │ │ ├── $77e1fe633e76693c6612.class │ │ │ ├── $8e4819bdd18c0a7cf62a$.class │ │ │ ├── $8e4819bdd18c0a7cf62a.class │ │ │ ├── $9bb2c418c2ecd5b95e12$.class │ │ │ ├── $9bb2c418c2ecd5b95e12.class │ │ │ ├── $d4ae3578703e9ccfc5d5$.class │ │ │ ├── $d4ae3578703e9ccfc5d5.class │ │ │ ├── $d8244a46f64f08881cbd$.class │ │ │ ├── $d8244a46f64f08881cbd.class │ │ │ ├── $d977aeb312a90dd927d2$.class │ │ │ ├── $d977aeb312a90dd927d2.class │ │ │ ├── $dc1dc9ebb0fc056cb3d2$.class │ │ │ ├── $dc1dc9ebb0fc056cb3d2.class │ │ │ ├── $fb021b8802404a34ba8b$.class │ │ │ ├── $fb021b8802404a34ba8b.class │ │ │ ├── $2b599b2d5e41bb62c14f$$anonfun$$sbtdef$1.class │ │ │ ├── $367c28e6db23547a21e6$$anonfun$$sbtdef$1.class │ │ │ ├── $5aeb8a289e6213dacf7a$$anonfun$$sbtdef$1.class │ │ │ ├── $5de1f2bd915ab4554340$$anonfun$$sbtdef$1.class │ │ │ ├── $77e1fe633e76693c6612$$anonfun$$sbtdef$1.class │ │ │ ├── $8e4819bdd18c0a7cf62a$$anonfun$$sbtdef$1.class │ │ │ ├── $9bb2c418c2ecd5b95e12$$anonfun$$sbtdef$1.class │ │ │ ├── $d4ae3578703e9ccfc5d5$$anonfun$$sbtdef$1.class │ │ │ ├── $d8244a46f64f08881cbd$$anonfun$$sbtdef$1.class │ │ │ ├── $d977aeb312a90dd927d2$$anonfun$$sbtdef$1.class │ │ │ ├── $dc1dc9ebb0fc056cb3d2$$anonfun$$sbtdef$1.class │ │ │ └── $fb021b8802404a34ba8b$$anonfun$$sbtdef$1.class │ ├── sparksqlexample.sbt │ └── src │ │ └── main │ │ └── scala │ │ ├── SparkSQLExample.scala │ │ └── SparkQueries.scala ├── SparkStreaming │ ├── project │ │ └── target │ │ │ └── config-classes │ │ │ ├── $1df17bce1d47f0c45146.cache │ │ │ ├── $39c86fe58829d15d15e3.cache │ │ │ ├── $5ae0da388cc0dc653e0b.cache │ │ │ ├── $80a93d116bb731b2796e.cache │ │ │ ├── $9139ede526cc2479924c.cache │ │ │ ├── $992577e055a0dcf7ff66.cache │ │ │ ├── $9ff399172a7d055ce0c8.cache │ │ │ ├── $e8f1c6fa12d35b3839d5.cache │ │ │ ├── $e96732ba8690ad965b6a.cache │ │ │ ├── $eaabad3de5b8e7494824.cache │ │ │ ├── $ee1ffc260967365eb7c5.cache │ │ │ ├── $f3f35514273bae68ad91.cache │ │ │ ├── $f8608afa6b0e2d9dde74.cache │ │ │ ├── $1df17bce1d47f0c45146.class │ │ │ ├── $39c86fe58829d15d15e3.class │ │ │ ├── $5ae0da388cc0dc653e0b.class │ │ │ ├── $80a93d116bb731b2796e.class │ │ │ ├── $9139ede526cc2479924c.class │ │ │ ├── $992577e055a0dcf7ff66.class │ │ │ ├── $9ff399172a7d055ce0c8.class │ │ │ ├── $e8f1c6fa12d35b3839d5.class │ │ │ ├── $e96732ba8690ad965b6a.class │ │ │ ├── $eaabad3de5b8e7494824.class │ │ │ ├── $ee1ffc260967365eb7c5.class │ │ │ ├── $f3f35514273bae68ad91.class │ │ │ ├── $f8608afa6b0e2d9dde74.class │ │ │ ├── $1df17bce1d47f0c45146$.class │ │ │ ├── $39c86fe58829d15d15e3$.class │ │ │ ├── $5ae0da388cc0dc653e0b$.class │ │ │ ├── $80a93d116bb731b2796e$.class │ │ │ ├── $9139ede526cc2479924c$.class │ │ │ ├── $992577e055a0dcf7ff66$.class │ │ │ ├── $9ff399172a7d055ce0c8$.class │ │ │ ├── $e8f1c6fa12d35b3839d5$.class │ │ │ ├── $e96732ba8690ad965b6a$.class │ │ │ ├── $eaabad3de5b8e7494824$.class │ │ │ ├── $ee1ffc260967365eb7c5$.class │ │ │ ├── $f3f35514273bae68ad91$.class │ │ │ ├── $f8608afa6b0e2d9dde74$.class │ │ │ ├── $1df17bce1d47f0c45146$$anonfun$$sbtdef$1.class │ │ │ ├── $39c86fe58829d15d15e3$$anonfun$$sbtdef$1.class │ │ │ ├── $5ae0da388cc0dc653e0b$$anonfun$$sbtdef$1.class │ │ │ ├── $80a93d116bb731b2796e$$anonfun$$sbtdef$1.class │ │ │ ├── $9139ede526cc2479924c$$anonfun$$sbtdef$1.class │ │ │ ├── $992577e055a0dcf7ff66$$anonfun$$sbtdef$1.class │ │ │ ├── $9ff399172a7d055ce0c8$$anonfun$$sbtdef$1.class │ │ │ ├── $e8f1c6fa12d35b3839d5$$anonfun$$sbtdef$1.class │ │ │ ├── $e96732ba8690ad965b6a$$anonfun$$sbtdef$1.class │ │ │ ├── $eaabad3de5b8e7494824$$anonfun$$sbtdef$1.class │ │ │ ├── $ee1ffc260967365eb7c5$$anonfun$$sbtdef$1.class │ │ │ ├── $f3f35514273bae68ad91$$anonfun$$sbtdef$1.class │ │ │ └── $f8608afa6b0e2d9dde74$$anonfun$$sbtdef$1.class │ ├── sparkstreaming.sbt │ ├── src │ │ └── main │ │ │ └── scala │ │ │ └── StreamingDemo.scala │ └── testtext.txt ├── ScalaTwitterStreaming │ ├── project │ │ └── target │ │ │ └── config-classes │ │ │ ├── $094b98f04af00d51d319.cache │ │ │ ├── $1f699abef2325c93aa1b.cache │ │ │ ├── $25bfae7971ae65a4f4d9.cache │ │ │ ├── $3f32edfa1b5609f4e160.cache │ │ │ ├── $4550f21f6220880cf63c.cache │ │ │ ├── $56f46db79b5ec1b3a67b.cache │ │ │ ├── $643f6984a5b335685994.cache │ │ │ ├── $6c1f78e6868c4079809b.cache │ │ │ ├── $76cd327ba7a231362af8.cache │ │ │ ├── $7aad02d628bbdd9bea79.cache │ │ │ ├── $7e5b4a99e52d9cc0c730.cache │ │ │ ├── $871feb0770d48ab4b0d6.cache │ │ │ ├── $913022b42ca686ed9f0a.cache │ │ │ ├── $a8c575b127d2baa7a6d1.cache │ │ │ ├── $ab78251db53649e95084.cache │ │ │ ├── $ad8027d27ba00700fac1.cache │ │ │ ├── $c3a76f97ac215fc18b25.cache │ │ │ ├── $c597225e79b70453fe0f.cache │ │ │ ├── $db5acc0d73cdb2d0784d.cache │ │ │ ├── $dd5468b5315f408b3a90.cache │ │ │ ├── $f3249ac75da064e117ad.cache │ │ │ ├── $fffa614eea373cbe83ad.cache │ │ │ ├── $094b98f04af00d51d319$.class │ │ │ ├── $094b98f04af00d51d319.class │ │ │ ├── $1f699abef2325c93aa1b$.class │ │ │ ├── $1f699abef2325c93aa1b.class │ │ │ ├── $25bfae7971ae65a4f4d9$.class │ │ │ ├── $25bfae7971ae65a4f4d9.class │ │ │ ├── $3f32edfa1b5609f4e160$.class │ │ │ ├── $3f32edfa1b5609f4e160.class │ │ │ ├── $4550f21f6220880cf63c$.class │ │ │ ├── $4550f21f6220880cf63c.class │ │ │ ├── $56f46db79b5ec1b3a67b$.class │ │ │ ├── $56f46db79b5ec1b3a67b.class │ │ │ ├── $643f6984a5b335685994$.class │ │ │ ├── $643f6984a5b335685994.class │ │ │ ├── $6c1f78e6868c4079809b$.class │ │ │ ├── $6c1f78e6868c4079809b.class │ │ │ ├── $76cd327ba7a231362af8$.class │ │ │ ├── $76cd327ba7a231362af8.class │ │ │ ├── $7aad02d628bbdd9bea79$.class │ │ │ ├── $7aad02d628bbdd9bea79.class │ │ │ ├── $7e5b4a99e52d9cc0c730$.class │ │ │ ├── $7e5b4a99e52d9cc0c730.class │ │ │ ├── $871feb0770d48ab4b0d6$.class │ │ │ ├── $871feb0770d48ab4b0d6.class │ │ │ ├── $913022b42ca686ed9f0a$.class │ │ │ ├── $913022b42ca686ed9f0a.class │ │ │ ├── $a8c575b127d2baa7a6d1$.class │ │ │ ├── $a8c575b127d2baa7a6d1.class │ │ │ ├── $ab78251db53649e95084$.class │ │ │ ├── $ab78251db53649e95084.class │ │ │ ├── $ad8027d27ba00700fac1$.class │ │ │ ├── $ad8027d27ba00700fac1.class │ │ │ ├── $c3a76f97ac215fc18b25$.class │ │ │ ├── $c3a76f97ac215fc18b25.class │ │ │ ├── $c597225e79b70453fe0f$.class │ │ │ ├── $c597225e79b70453fe0f.class │ │ │ ├── $db5acc0d73cdb2d0784d$.class │ │ │ ├── $db5acc0d73cdb2d0784d.class │ │ │ ├── $dd5468b5315f408b3a90$.class │ │ │ ├── $dd5468b5315f408b3a90.class │ │ │ ├── $f3249ac75da064e117ad$.class │ │ │ ├── $f3249ac75da064e117ad.class │ │ │ ├── $fffa614eea373cbe83ad$.class │ │ │ ├── $fffa614eea373cbe83ad.class │ │ │ ├── $094b98f04af00d51d319$$anonfun$$sbtdef$1.class │ │ │ ├── $1f699abef2325c93aa1b$$anonfun$$sbtdef$1.class │ │ │ ├── $25bfae7971ae65a4f4d9$$anonfun$$sbtdef$1.class │ │ │ ├── $4550f21f6220880cf63c$$anonfun$$sbtdef$1.class │ │ │ ├── $56f46db79b5ec1b3a67b$$anonfun$$sbtdef$1.class │ │ │ ├── $643f6984a5b335685994$$anonfun$$sbtdef$1.class │ │ │ ├── $6c1f78e6868c4079809b$$anonfun$$sbtdef$1.class │ │ │ ├── $76cd327ba7a231362af8$$anonfun$$sbtdef$1.class │ │ │ ├── $7aad02d628bbdd9bea79$$anonfun$$sbtdef$1.class │ │ │ ├── $7e5b4a99e52d9cc0c730$$anonfun$$sbtdef$1.class │ │ │ ├── $871feb0770d48ab4b0d6$$anonfun$$sbtdef$1.class │ │ │ ├── $a8c575b127d2baa7a6d1$$anonfun$$sbtdef$1.class │ │ │ ├── $ab78251db53649e95084$$anonfun$$sbtdef$1.class │ │ │ ├── $ad8027d27ba00700fac1$$anonfun$$sbtdef$1.class │ │ │ ├── $c3a76f97ac215fc18b25$$anonfun$$sbtdef$1.class │ │ │ ├── $c597225e79b70453fe0f$$anonfun$$sbtdef$1.class │ │ │ ├── $db5acc0d73cdb2d0784d$$anonfun$$sbtdef$1.class │ │ │ ├── $dd5468b5315f408b3a90$$anonfun$$sbtdef$1.class │ │ │ └── $f3249ac75da064e117ad$$anonfun$$sbtdef$1.class │ ├── pluginlib │ │ └── sbt-assembly-0.11.2.jar │ ├── twitterstreaming.sbt │ └── src │ │ └── main │ │ └── scala │ │ └── TwitterStreaming.scala ├── MLibKMeansCluster │ └── src │ │ └── main │ │ └── scala │ │ └── MLibKMeans.scala └── MLibDecisionTree │ └── src │ └── main │ └── scala │ └── SparkDecisionTree.scala ├── R └── chapter12 │ ├── twitterconnect.r │ └── sentiment.r ├── java ├── src │ ├── chapter3 │ │ ├── InformationGain.java │ │ ├── TestClassifier.java │ │ ├── WekaClassifier.java │ │ └── WekaWrapper.java │ ├── chapter9 │ │ ├── twitterstreamtransformer.xml │ │ └── TwitterStreamTransform.java │ ├── chapter10 │ │ ├── HashtagReducer.java │ │ ├── PopulateStockTable.java │ │ ├── PigCalcMonthsBelow.java │ │ ├── HashtagJob.java │ │ ├── HashtagMapper.java │ │ ├── CoreMethods.java │ │ ├── ShowRecommendations.java │ │ └── CoreMethodsMapper.java │ ├── chapter2 │ │ ├── CountryHashMap.java │ │ └── BritneyDilemma.java │ ├── chapter12 │ │ └── TestR.java │ ├── chapter8 │ │ └── WekaCluster.java │ ├── chapter6 │ │ ├── DataConverter.java │ │ ├── ExtractProductNames.java │ │ └── DataReader.java │ ├── chapter7 │ │ └── MLLibSVMTest.java │ ├── chapter5 │ │ └── MLPProcessor.java │ └── chapter4 │ │ └── BayesNetExample.java └── pom.xml └── README.txt /testdata/v100k.model: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/testdata/v100k.model -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$4283b072697906b97b98.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$45474e939de4bffccb3d.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$9d3f59e239d4b5c16d1b.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$a893abe58622e3ff2461.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$d04997821e4e03c2e2fe.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$d0ad7a51f5327b280ca9.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$d91b7607e5b72769b41c.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$dcf33314bf554e92b36a.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$f2abbf2edcc2fae8fe21.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$f561da81d0e619dcd6e8.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$2b599b2d5e41bb62c14f.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$367c28e6db23547a21e6.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$5aeb8a289e6213dacf7a.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$5de1f2bd915ab4554340.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$77e1fe633e76693c6612.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$8e4819bdd18c0a7cf62a.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$9bb2c418c2ecd5b95e12.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$d4ae3578703e9ccfc5d5.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$d8244a46f64f08881cbd.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$d977aeb312a90dd927d2.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$dc1dc9ebb0fc056cb3d2.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$fb021b8802404a34ba8b.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$1df17bce1d47f0c45146.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$39c86fe58829d15d15e3.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$5ae0da388cc0dc653e0b.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$80a93d116bb731b2796e.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$9139ede526cc2479924c.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$992577e055a0dcf7ff66.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$9ff399172a7d055ce0c8.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$e8f1c6fa12d35b3839d5.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$e96732ba8690ad965b6a.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$eaabad3de5b8e7494824.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$ee1ffc260967365eb7c5.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$f3f35514273bae68ad91.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$f8608afa6b0e2d9dde74.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$094b98f04af00d51d319.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$1f699abef2325c93aa1b.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$25bfae7971ae65a4f4d9.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$3f32edfa1b5609f4e160.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$4550f21f6220880cf63c.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$56f46db79b5ec1b3a67b.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$643f6984a5b335685994.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$6c1f78e6868c4079809b.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$76cd327ba7a231362af8.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$7aad02d628bbdd9bea79.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$7e5b4a99e52d9cc0c730.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$871feb0770d48ab4b0d6.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$913022b42ca686ed9f0a.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$a8c575b127d2baa7a6d1.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$ab78251db53649e95084.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$ad8027d27ba00700fac1.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$c3a76f97ac215fc18b25.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$c597225e79b70453fe0f.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$db5acc0d73cdb2d0784d.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$dd5468b5315f408b3a90.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$f3249ac75da064e117ad.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$fffa614eea373cbe83ad.cache: -------------------------------------------------------------------------------- 1 | sbt.Def.SettingsDefinition -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/pluginlib/sbt-assembly-0.11.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/pluginlib/sbt-assembly-0.11.2.jar -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$4283b072697906b97b98.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$4283b072697906b97b98.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$45474e939de4bffccb3d.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$45474e939de4bffccb3d.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$9d3f59e239d4b5c16d1b.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$9d3f59e239d4b5c16d1b.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$a893abe58622e3ff2461.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$a893abe58622e3ff2461.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$d04997821e4e03c2e2fe.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$d04997821e4e03c2e2fe.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$d0ad7a51f5327b280ca9.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$d0ad7a51f5327b280ca9.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$d91b7607e5b72769b41c.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$d91b7607e5b72769b41c.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$dcf33314bf554e92b36a.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$dcf33314bf554e92b36a.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$f2abbf2edcc2fae8fe21.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$f2abbf2edcc2fae8fe21.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$f561da81d0e619dcd6e8.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$f561da81d0e619dcd6e8.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$1df17bce1d47f0c45146.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$1df17bce1d47f0c45146.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$39c86fe58829d15d15e3.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$39c86fe58829d15d15e3.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$5ae0da388cc0dc653e0b.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$5ae0da388cc0dc653e0b.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$80a93d116bb731b2796e.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$80a93d116bb731b2796e.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$9139ede526cc2479924c.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$9139ede526cc2479924c.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$992577e055a0dcf7ff66.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$992577e055a0dcf7ff66.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$9ff399172a7d055ce0c8.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$9ff399172a7d055ce0c8.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$e8f1c6fa12d35b3839d5.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$e8f1c6fa12d35b3839d5.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$e96732ba8690ad965b6a.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$e96732ba8690ad965b6a.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$eaabad3de5b8e7494824.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$eaabad3de5b8e7494824.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$ee1ffc260967365eb7c5.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$ee1ffc260967365eb7c5.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$f3f35514273bae68ad91.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$f3f35514273bae68ad91.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$f8608afa6b0e2d9dde74.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$f8608afa6b0e2d9dde74.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$4283b072697906b97b98$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$4283b072697906b97b98$.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$45474e939de4bffccb3d$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$45474e939de4bffccb3d$.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$9d3f59e239d4b5c16d1b$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$9d3f59e239d4b5c16d1b$.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$a893abe58622e3ff2461$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$a893abe58622e3ff2461$.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$d04997821e4e03c2e2fe$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$d04997821e4e03c2e2fe$.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$d0ad7a51f5327b280ca9$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$d0ad7a51f5327b280ca9$.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$d91b7607e5b72769b41c$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$d91b7607e5b72769b41c$.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$dcf33314bf554e92b36a$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$dcf33314bf554e92b36a$.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$f2abbf2edcc2fae8fe21$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$f2abbf2edcc2fae8fe21$.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$f561da81d0e619dcd6e8$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$f561da81d0e619dcd6e8$.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$2b599b2d5e41bb62c14f$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$2b599b2d5e41bb62c14f$.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$2b599b2d5e41bb62c14f.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$2b599b2d5e41bb62c14f.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$367c28e6db23547a21e6$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$367c28e6db23547a21e6$.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$367c28e6db23547a21e6.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$367c28e6db23547a21e6.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$5aeb8a289e6213dacf7a$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$5aeb8a289e6213dacf7a$.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$5aeb8a289e6213dacf7a.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$5aeb8a289e6213dacf7a.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$5de1f2bd915ab4554340$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$5de1f2bd915ab4554340$.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$5de1f2bd915ab4554340.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$5de1f2bd915ab4554340.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$77e1fe633e76693c6612$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$77e1fe633e76693c6612$.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$77e1fe633e76693c6612.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$77e1fe633e76693c6612.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$8e4819bdd18c0a7cf62a$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$8e4819bdd18c0a7cf62a$.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$8e4819bdd18c0a7cf62a.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$8e4819bdd18c0a7cf62a.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$9bb2c418c2ecd5b95e12$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$9bb2c418c2ecd5b95e12$.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$9bb2c418c2ecd5b95e12.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$9bb2c418c2ecd5b95e12.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$d4ae3578703e9ccfc5d5$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$d4ae3578703e9ccfc5d5$.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$d4ae3578703e9ccfc5d5.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$d4ae3578703e9ccfc5d5.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$d8244a46f64f08881cbd$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$d8244a46f64f08881cbd$.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$d8244a46f64f08881cbd.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$d8244a46f64f08881cbd.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$d977aeb312a90dd927d2$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$d977aeb312a90dd927d2$.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$d977aeb312a90dd927d2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$d977aeb312a90dd927d2.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$dc1dc9ebb0fc056cb3d2$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$dc1dc9ebb0fc056cb3d2$.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$dc1dc9ebb0fc056cb3d2.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$dc1dc9ebb0fc056cb3d2.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$fb021b8802404a34ba8b$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$fb021b8802404a34ba8b$.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$fb021b8802404a34ba8b.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$fb021b8802404a34ba8b.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$1df17bce1d47f0c45146$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$1df17bce1d47f0c45146$.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$39c86fe58829d15d15e3$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$39c86fe58829d15d15e3$.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$5ae0da388cc0dc653e0b$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$5ae0da388cc0dc653e0b$.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$80a93d116bb731b2796e$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$80a93d116bb731b2796e$.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$9139ede526cc2479924c$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$9139ede526cc2479924c$.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$992577e055a0dcf7ff66$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$992577e055a0dcf7ff66$.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$9ff399172a7d055ce0c8$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$9ff399172a7d055ce0c8$.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$e8f1c6fa12d35b3839d5$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$e8f1c6fa12d35b3839d5$.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$e96732ba8690ad965b6a$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$e96732ba8690ad965b6a$.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$eaabad3de5b8e7494824$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$eaabad3de5b8e7494824$.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$ee1ffc260967365eb7c5$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$ee1ffc260967365eb7c5$.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$f3f35514273bae68ad91$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$f3f35514273bae68ad91$.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$f8608afa6b0e2d9dde74$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$f8608afa6b0e2d9dde74$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$094b98f04af00d51d319$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$094b98f04af00d51d319$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$094b98f04af00d51d319.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$094b98f04af00d51d319.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$1f699abef2325c93aa1b$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$1f699abef2325c93aa1b$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$1f699abef2325c93aa1b.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$1f699abef2325c93aa1b.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$25bfae7971ae65a4f4d9$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$25bfae7971ae65a4f4d9$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$25bfae7971ae65a4f4d9.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$25bfae7971ae65a4f4d9.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$3f32edfa1b5609f4e160$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$3f32edfa1b5609f4e160$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$3f32edfa1b5609f4e160.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$3f32edfa1b5609f4e160.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$4550f21f6220880cf63c$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$4550f21f6220880cf63c$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$4550f21f6220880cf63c.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$4550f21f6220880cf63c.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$56f46db79b5ec1b3a67b$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$56f46db79b5ec1b3a67b$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$56f46db79b5ec1b3a67b.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$56f46db79b5ec1b3a67b.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$643f6984a5b335685994$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$643f6984a5b335685994$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$643f6984a5b335685994.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$643f6984a5b335685994.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$6c1f78e6868c4079809b$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$6c1f78e6868c4079809b$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$6c1f78e6868c4079809b.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$6c1f78e6868c4079809b.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$76cd327ba7a231362af8$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$76cd327ba7a231362af8$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$76cd327ba7a231362af8.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$76cd327ba7a231362af8.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$7aad02d628bbdd9bea79$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$7aad02d628bbdd9bea79$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$7aad02d628bbdd9bea79.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$7aad02d628bbdd9bea79.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$7e5b4a99e52d9cc0c730$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$7e5b4a99e52d9cc0c730$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$7e5b4a99e52d9cc0c730.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$7e5b4a99e52d9cc0c730.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$871feb0770d48ab4b0d6$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$871feb0770d48ab4b0d6$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$871feb0770d48ab4b0d6.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$871feb0770d48ab4b0d6.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$913022b42ca686ed9f0a$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$913022b42ca686ed9f0a$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$913022b42ca686ed9f0a.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$913022b42ca686ed9f0a.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$a8c575b127d2baa7a6d1$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$a8c575b127d2baa7a6d1$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$a8c575b127d2baa7a6d1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$a8c575b127d2baa7a6d1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$ab78251db53649e95084$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$ab78251db53649e95084$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$ab78251db53649e95084.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$ab78251db53649e95084.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$ad8027d27ba00700fac1$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$ad8027d27ba00700fac1$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$ad8027d27ba00700fac1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$ad8027d27ba00700fac1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$c3a76f97ac215fc18b25$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$c3a76f97ac215fc18b25$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$c3a76f97ac215fc18b25.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$c3a76f97ac215fc18b25.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$c597225e79b70453fe0f$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$c597225e79b70453fe0f$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$c597225e79b70453fe0f.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$c597225e79b70453fe0f.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$db5acc0d73cdb2d0784d$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$db5acc0d73cdb2d0784d$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$db5acc0d73cdb2d0784d.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$db5acc0d73cdb2d0784d.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$dd5468b5315f408b3a90$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$dd5468b5315f408b3a90$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$dd5468b5315f408b3a90.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$dd5468b5315f408b3a90.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$f3249ac75da064e117ad$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$f3249ac75da064e117ad$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$f3249ac75da064e117ad.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$f3249ac75da064e117ad.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$fffa614eea373cbe83ad$.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$fffa614eea373cbe83ad$.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$fffa614eea373cbe83ad.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$fffa614eea373cbe83ad.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$4283b072697906b97b98$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$4283b072697906b97b98$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$45474e939de4bffccb3d$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$45474e939de4bffccb3d$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$9d3f59e239d4b5c16d1b$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$9d3f59e239d4b5c16d1b$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$a893abe58622e3ff2461$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$a893abe58622e3ff2461$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$d04997821e4e03c2e2fe$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$d04997821e4e03c2e2fe$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$d0ad7a51f5327b280ca9$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$d0ad7a51f5327b280ca9$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$d91b7607e5b72769b41c$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$d91b7607e5b72769b41c$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$dcf33314bf554e92b36a$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$dcf33314bf554e92b36a$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$f2abbf2edcc2fae8fe21$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$f2abbf2edcc2fae8fe21$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/project/target/config-classes/$f561da81d0e619dcd6e8$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaMRExample/project/target/config-classes/$f561da81d0e619dcd6e8$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$2b599b2d5e41bb62c14f$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$2b599b2d5e41bb62c14f$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$367c28e6db23547a21e6$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$367c28e6db23547a21e6$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$5aeb8a289e6213dacf7a$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$5aeb8a289e6213dacf7a$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$5de1f2bd915ab4554340$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$5de1f2bd915ab4554340$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$77e1fe633e76693c6612$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$77e1fe633e76693c6612$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$8e4819bdd18c0a7cf62a$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$8e4819bdd18c0a7cf62a$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$9bb2c418c2ecd5b95e12$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$9bb2c418c2ecd5b95e12$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$d4ae3578703e9ccfc5d5$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$d4ae3578703e9ccfc5d5$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$d8244a46f64f08881cbd$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$d8244a46f64f08881cbd$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$d977aeb312a90dd927d2$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$d977aeb312a90dd927d2$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$dc1dc9ebb0fc056cb3d2$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$dc1dc9ebb0fc056cb3d2$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkSQLExample/project/target/config-classes/$fb021b8802404a34ba8b$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkSQLExample/project/target/config-classes/$fb021b8802404a34ba8b$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$1df17bce1d47f0c45146$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$1df17bce1d47f0c45146$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$39c86fe58829d15d15e3$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$39c86fe58829d15d15e3$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$5ae0da388cc0dc653e0b$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$5ae0da388cc0dc653e0b$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$80a93d116bb731b2796e$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$80a93d116bb731b2796e$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$9139ede526cc2479924c$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$9139ede526cc2479924c$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$992577e055a0dcf7ff66$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$992577e055a0dcf7ff66$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$9ff399172a7d055ce0c8$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$9ff399172a7d055ce0c8$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$e8f1c6fa12d35b3839d5$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$e8f1c6fa12d35b3839d5$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$e96732ba8690ad965b6a$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$e96732ba8690ad965b6a$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$eaabad3de5b8e7494824$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$eaabad3de5b8e7494824$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$ee1ffc260967365eb7c5$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$ee1ffc260967365eb7c5$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$f3f35514273bae68ad91$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$f3f35514273bae68ad91$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/SparkStreaming/project/target/config-classes/$f8608afa6b0e2d9dde74$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/SparkStreaming/project/target/config-classes/$f8608afa6b0e2d9dde74$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$094b98f04af00d51d319$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$094b98f04af00d51d319$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$1f699abef2325c93aa1b$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$1f699abef2325c93aa1b$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$25bfae7971ae65a4f4d9$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$25bfae7971ae65a4f4d9$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$4550f21f6220880cf63c$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$4550f21f6220880cf63c$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$56f46db79b5ec1b3a67b$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$56f46db79b5ec1b3a67b$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$643f6984a5b335685994$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$643f6984a5b335685994$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$6c1f78e6868c4079809b$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$6c1f78e6868c4079809b$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$76cd327ba7a231362af8$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$76cd327ba7a231362af8$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$7aad02d628bbdd9bea79$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$7aad02d628bbdd9bea79$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$7e5b4a99e52d9cc0c730$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$7e5b4a99e52d9cc0c730$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$871feb0770d48ab4b0d6$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$871feb0770d48ab4b0d6$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$a8c575b127d2baa7a6d1$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$a8c575b127d2baa7a6d1$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$ab78251db53649e95084$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$ab78251db53649e95084$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$ad8027d27ba00700fac1$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$ad8027d27ba00700fac1$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$c3a76f97ac215fc18b25$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$c3a76f97ac215fc18b25$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$c597225e79b70453fe0f$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$c597225e79b70453fe0f$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$db5acc0d73cdb2d0784d$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$db5acc0d73cdb2d0784d$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$dd5468b5315f408b3a90$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$dd5468b5315f408b3a90$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/project/target/config-classes/$f3249ac75da064e117ad$$anonfun$$sbtdef$1.class: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasebell/mlbook/HEAD/scala/ScalaTwitterStreaming/project/target/config-classes/$f3249ac75da064e117ad$$anonfun$$sbtdef$1.class -------------------------------------------------------------------------------- /scala/ScalaMRExample/scalamrexample.sbt: -------------------------------------------------------------------------------- 1 | name := "ScalaMRExample" 2 | 3 | version := "1.0" 4 | 5 | scalaVersion := "2.10.4" 6 | 7 | libraryDependencies += "org.apache.spark" %% "spark-core" % "1.0.0" 8 | 9 | resolvers += "Akka Repository" at "http://repo.akka.io/releases/" 10 | 11 | -------------------------------------------------------------------------------- /scala/SparkSQLExample/sparksqlexample.sbt: -------------------------------------------------------------------------------- 1 | name := "SparkSQLExample" 2 | 3 | version := "1.0" 4 | 5 | scalaVersion := "2.10.4" 6 | 7 | libraryDependencies += "org.apache.spark" %% "spark-core" % "1.0.0" 8 | 9 | libraryDependencies += "org.apache.spark" %% "spark-sql" % "1.0.0" 10 | 11 | resolvers += "Akka Repository" at "http://repo.akka.io/releases/" 12 | 13 | -------------------------------------------------------------------------------- /scala/SparkStreaming/sparkstreaming.sbt: -------------------------------------------------------------------------------- 1 | name := "StreamingExample" 2 | 3 | version := "1.0" 4 | 5 | scalaVersion := "2.10.4" 6 | 7 | libraryDependencies += "org.apache.spark" %% "spark-core" % "1.0.0" 8 | 9 | libraryDependencies += "org.apache.spark" % "spark-streaming_2.10" % "1.0.0" 10 | 11 | resolvers += "Akka Repository" at "http://repo.akka.io/releases/" 12 | 13 | -------------------------------------------------------------------------------- /R/chapter12/twitterconnect.r: -------------------------------------------------------------------------------- 1 | library(twitteR) 2 | cred <- OAuthFactory$new(consumerKey="xxxxxxxxxxxxx", 3 | consumerSecret="xxxxxxxxxxxx", 4 | requestURL="http://api.twitter.com/oauth/request_token", 5 | accessURL="http://api.twitter.com/oauth/access_token", 6 | authURL="http://api.twitter.com/oauth/authorize") 7 | download.file(url="http://curl.haxx.se/ca/cacert.pem", destfile="cacert.pem") 8 | cred$handshake(cainfo="cacert.pem") 9 | -------------------------------------------------------------------------------- /testdata/ladygaga.csv: -------------------------------------------------------------------------------- 1 | Placement,prominence, pricing, eye_level, customer_purchase 2 | end_rack,85,85,FALSE,yes 3 | end_rack,80,90,TRUE,yes 4 | cd_spec,83,86,FALSE,no 5 | std_rack,70,96,FALSE,no 6 | std_rack,68,80,FALSE,no 7 | std_rack,65,70,TRUE,yes 8 | cd_spec,64,65,TRUE,yes 9 | end_rack,72,95,FALSE,yes 10 | end_rack,69,70,FALSE,yes 11 | std_rack,75,80,FALSE,no 12 | end_rack,75,70,TRUE,no 13 | cd_spec,72,90,TRUE,no 14 | cd_spec,81,75,FALSE,yes 15 | std_rack,71,91,TRUE,yes 16 | -------------------------------------------------------------------------------- /scala/MLibKMeansCluster/src/main/scala/MLibKMeans.scala: -------------------------------------------------------------------------------- 1 | import org.apache.spark.mllib.clustering.KMeans 2 | import org.apache.spark.mllib.linalg.Vectors 3 | 4 | val inputData = sc.textFile("data/kmeans_data.txt") 5 | val parsedData = inputData.map(s => Vectors.dense(s.split(' ').map(_.toDouble))) 6 | 7 | val numClusters = 2 8 | val numIterations = 20 9 | val clusters = KMeans.train(parsedData, numClusters, numIterations) 10 | 11 | 12 | val WSSSE = clusters.computeCost(parsedData) 13 | println("WSSSE = " + WSSSE) -------------------------------------------------------------------------------- /R/chapter12/sentiment.r: -------------------------------------------------------------------------------- 1 | GetScore<-function(sentence, pos.words, neg.words) { 2 | sentence = gsub('[[:punct:]]', '', sentence) 3 | sentence = gsub('[[:cntrl:]]', '', sentence) 4 | sentence = gsub('\\d+', '', sentence) 5 | 6 | sentence = tolower(sentence) 7 | 8 | word.list = str_split(sentence, '\\s+') 9 | words = unlist(word.list) 10 | 11 | pos.matches = match(words, pos.words) 12 | neg.matches = match(words, neg.words) 13 | 14 | pos.matches = !is.na(pos.matches) 15 | neg.matches = !is.na(neg.matches) 16 | score = sum(pos.matches) - sum(neg.matches) 17 | 18 | return(score) 19 | } 20 | -------------------------------------------------------------------------------- /java/src/chapter3/InformationGain.java: -------------------------------------------------------------------------------- 1 | package chapter3; 2 | 3 | public class InformationGain { 4 | 5 | private double calcLog2(double value) { 6 | if(value <= 0.) { 7 | return 0.; 8 | } 9 | return Math.log10(value) / Math.log10(2.); 10 | } 11 | 12 | public double calcGain(double positive, double negative) { 13 | double sum = positive + negative; 14 | double gain = positive * calcLog2(positive/sum)/sum + negative * calcLog2(negative/sum)/sum; 15 | return -gain; 16 | } 17 | 18 | public static void main(String[] args) { 19 | InformationGain ig = new InformationGain(); 20 | System.out.println(ig.calcGain(1,0)); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /testdata/ladygaga.arff: -------------------------------------------------------------------------------- 1 | @relation ladygaga 2 | 3 | @attribute placement {end_rack, cd_spec, std_rack} 4 | @attribute prominence numeric 5 | @attribute pricing numeric 6 | @attribute eye_level {TRUE, FALSE} 7 | @attribute customer_purchase {yes, no} 8 | 9 | @data 10 | end_rack,85,85,FALSE,yes 11 | end_rack,80,90,TRUE,yes 12 | cd_spec,83,86,FALSE,no 13 | std_rack,70,96,FALSE,no 14 | std_rack,68,80,FALSE,no 15 | std_rack,65,70,TRUE,yes 16 | cd_spec,64,65,TRUE,yes 17 | end_rack,72,95,FALSE,yes 18 | end_rack,69,70,FALSE,no 19 | std_rack,75,80,FALSE,no 20 | end_rack,75,70,TRUE,no 21 | cd_spec,72,90,TRUE,no 22 | cd_spec,81,75,FALSE,yes 23 | std_rack,71,91,TRUE,yes 24 | -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/twitterstreaming.sbt: -------------------------------------------------------------------------------- 1 | name := "TwitterStreaming" 2 | 3 | version := "1.0" 4 | 5 | scalaVersion := "2.10.4" 6 | 7 | unmanagedBase := baseDirectory.value / "pluginlib" 8 | 9 | addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.8.7") 10 | 11 | libraryDependencies += "org.apache.spark" %% "spark-core" % "1.0.0" 12 | 13 | libraryDependencies += "org.apache.spark" % "spark-streaming_2.10" % "1.0.0" 14 | 15 | libraryDependencies += "org.apache.spark" % "spark-streaming-twitter_2.10" % "1.0.0" 16 | 17 | libraryDependencies += "org.twitter4j" % "twitter4j-stream" % "3.0.3" 18 | 19 | resolvers += "Akka Repository" at "http://repo.akka.io/releases/" 20 | 21 | -------------------------------------------------------------------------------- /scala/ScalaMRExample/src/main/scala/ScalaMRExample.scala: -------------------------------------------------------------------------------- 1 | import org.apache.spark.SparkContext 2 | import org.apache.spark.SparkContext._ 3 | import org.apache.spark.SparkConf 4 | 5 | object ScalaMRExample { 6 | def main(args: Array[String]) { 7 | val configuration = new SparkConf().setAppName("Scala MapReduce Example") 8 | val textFile = "/home/jason/worldbrain.txt" 9 | val sc = new SparkContext(configuration) 10 | val textSc = sc.textFile(textFile) 11 | val mapred = textSc.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a,b) => a+b) 12 | 13 | mapred.collect 14 | 15 | mapred.saveAsTextFile("/home/jason/wboutput") 16 | 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /java/src/chapter9/twitterstreamtransformer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /java/src/chapter3/TestClassifier.java: -------------------------------------------------------------------------------- 1 | package chapter3; 2 | 3 | import java.io.BufferedReader; 4 | import java.io.FileReader; 5 | 6 | import weka.core.Instances; 7 | 8 | public class TestClassifier { 9 | public static void main(String[] args) { 10 | WekaWrapper ww = new WekaWrapper(); 11 | try { 12 | Instances unlabeled = new Instances(new BufferedReader( 13 | new FileReader("/Users/Jason/lg2.arff"))); 14 | 15 | unlabeled.setClassIndex(unlabeled.numAttributes() - 1); 16 | 17 | for (int i = 0; i < unlabeled.numInstances(); i++) { 18 | double clsLabel = ww.classifyInstance(unlabeled.instance(i)); 19 | System.out.println(clsLabel + " -> " + unlabeled.classAttribute().value((int) clsLabel)); 20 | } 21 | } catch (Exception e) { 22 | e.printStackTrace(); 23 | } 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /testdata/testdata.arff: -------------------------------------------------------------------------------- 1 | @relation vehicledata 2 | 3 | @attribute wheels numeric 4 | @attribute chassis numeric 5 | @attribute pax numeric 6 | @attribute vtype {Bus,Car,Truck,Bike} 7 | 8 | @data 9 | 18,25,2,Truck 10 | 8,21,24,Bus 11 | 18,27,2,Truck 12 | 1,1,1,Bike 13 | 7,23,21,Bus 14 | 18,20,1,Truck 15 | 8,16,30,Bus 16 | 18,28,2,Truck 17 | 7,18,36,Bus 18 | 8,21,27,Bus 19 | 5,2,4,Car 20 | 18,28,1,Truck 21 | 5,1,1,Car 22 | 1,1,1,Bike 23 | 18,27,1,Truck 24 | 5,1,1,Car 25 | 6,15,38,Bus 26 | 7,21,38,Bus 27 | 18,20,2,Truck 28 | 1,1,1,Bike 29 | 18,28,2,Truck 30 | 18,24,2,Truck 31 | 18,20,1,Truck 32 | 1,1,1,Bike 33 | 5,17,18,Bus 34 | 18,27,1,Truck 35 | 4,4,3,Car 36 | 18,21,1,Truck 37 | 5,2,3,Car 38 | 4,3,3,Car 39 | 18,23,1,Truck 40 | 5,20,30,Bus 41 | 5,3,3,Car 42 | 18,28,1,Truck 43 | 5,3,1,Car 44 | 9,13,19,Bus 45 | 1,1,1,Bike 46 | 18,26,2,Truck 47 | -------------------------------------------------------------------------------- /java/src/chapter10/HashtagReducer.java: -------------------------------------------------------------------------------- 1 | package chapter10; 2 | import java.io.IOException; 3 | import java.util.Iterator; 4 | 5 | import org.apache.hadoop.io.IntWritable; 6 | import org.apache.hadoop.io.Text; 7 | import org.apache.hadoop.mapred.MapReduceBase; 8 | import org.apache.hadoop.mapred.OutputCollector; 9 | import org.apache.hadoop.mapred.Reducer; 10 | import org.apache.hadoop.mapred.Reporter; 11 | 12 | 13 | public class HashtagReducer extends MapReduceBase implements Reducer{ 14 | 15 | @Override 16 | public void reduce(Text key, Iterator values, 17 | OutputCollector output, Reporter reporter) 18 | throws IOException { 19 | int sum = 0; 20 | while (values.hasNext()) { 21 | sum += values.next().get(); 22 | } 23 | output.collect(key, new IntWritable(sum)); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /testdata/kmeansdata.csv: -------------------------------------------------------------------------------- 1 | x,y, 2 | 4,53 3 | 5,63 4 | 10,59 5 | 9,77 6 | 13,49 7 | 13,69 8 | 12,88 9 | 15,75 10 | 18,61 11 | 19,65 12 | 22,74 13 | 27,72 14 | 28,76 15 | 24,58 16 | 27,55 17 | 28,60 18 | 30,52 19 | 31,60 20 | 32,61 21 | 36,72 22 | 28,147 23 | 32,149 24 | 35,153 25 | 33,154 26 | 38,151 27 | 41,150 28 | 38,145 29 | 38,143 30 | 32,143 31 | 34,141 32 | 44,156 33 | 44,149 34 | 44,143 35 | 46,142 36 | 47,149 37 | 49,152 38 | 50,142 39 | 53,144 40 | 52,152 41 | 55,155 42 | 54,124 43 | 60,136 44 | 63,139 45 | 86,132 46 | 85,115 47 | 85,96 48 | 78,94 49 | 74,96 50 | 97,122 51 | 98,116 52 | 98,124 53 | 99,119 54 | 99,128 55 | 101,115 56 | 108,111 57 | 110,111 58 | 108,116 59 | 111,126 60 | 115,117 61 | 117,115 62 | 70,4 63 | 77,12 64 | 83,21 65 | 61,15 66 | 69,15 67 | 78,16 68 | 66,18 69 | 58,13 70 | 64,20 71 | 69,21 72 | 66,23 73 | 61,25 74 | 76,27 75 | 72,31 76 | 64,30 -------------------------------------------------------------------------------- /scala/SparkStreaming/src/main/scala/StreamingDemo.scala: -------------------------------------------------------------------------------- 1 | import org.apache.spark.SparkConf 2 | import org.apache.spark.streaming.{Seconds, StreamingContext} 3 | import org.apache.spark.streaming.StreamingContext._ 4 | import org.apache.spark.storage.StorageLevel 5 | 6 | object TCPIngester { 7 | def main(args: Array[String]) { 8 | 9 | val sparkConf = new SparkConf().setAppName("TCPIngester") 10 | val ssc = new StreamingContext(sparkConf, Seconds(1)) 11 | 12 | 13 | val incomingLines = ssc.socketTextStream("127.0.0.1", 10000, StorageLevel.MEMORY_AND_DISK_SER) 14 | val words = incomingLines.flatMap(_.split(" ")) 15 | val counts = words.map(w => (w, 1)).reduceByKey(_ + _) 16 | counts.print 17 | 18 | counts.saveAsTextFiles("/home/jason/streamtestout/mystream_",".txt") 19 | 20 | ssc.start() 21 | ssc.awaitTermination() 22 | } 23 | } 24 | 25 | -------------------------------------------------------------------------------- /java/src/chapter2/CountryHashMap.java: -------------------------------------------------------------------------------- 1 | package chapter2; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | public class CountryHashMap { 7 | 8 | private Map countries = new HashMap(); 9 | 10 | public CountryHashMap() { 11 | countries.put("Ireland", "IE"); 12 | countries.put("Eire", "IE"); 13 | countries.put("Republic of Ireland", "IE"); 14 | countries.put("Northern Ireland", "UK"); 15 | countries.put("England", "UK"); 16 | // you could add more or generate from a database. 17 | } 18 | 19 | public String getCountryCode(String country) { 20 | return countries.get(country); 21 | } 22 | 23 | public static void main(String[] args) { 24 | CountryHashMap chm = new CountryHashMap(); 25 | System.out.println(chm.getCountryCode("Ireland")); 26 | System.out.println(chm.getCountryCode("Northern Ireland")); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /java/src/chapter12/TestR.java: -------------------------------------------------------------------------------- 1 | import java.util.Enumeration; 2 | 3 | import org.rosuda.JRI.REXP; 4 | import org.rosuda.JRI.RVector; 5 | import org.rosuda.JRI.Rengine; 6 | 7 | public class TestR { 8 | 9 | public static void main(String[] args) { 10 | Rengine rEngine = new Rengine(new String[] { "--vanilla" }, false, null); 11 | System.out.println("Waiting for R to create the engine."); 12 | 13 | if (!rEngine.waitForR()) { 14 | System.out.println("Cannot load R engine."); 15 | return; 16 | } 17 | 18 | rEngine.eval("data(iris)", false); 19 | REXP exp = rEngine.eval("iris"); 20 | RVector vector = exp.asVector(); 21 | System.out.println("Outputting names:"); 22 | for (Enumeration e = vector.getNames().elements(); e.hasMoreElements();) { 23 | System.out.println(e.nextElement()); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /java/src/chapter10/PopulateStockTable.java: -------------------------------------------------------------------------------- 1 | package chapter10; 2 | 3 | import java.sql.Connection; 4 | import java.sql.DriverManager; 5 | import java.sql.PreparedStatement; 6 | import java.sql.SQLException; 7 | 8 | public class PopulateStockTable { 9 | static { 10 | try { 11 | Class.forName("com.mysql.jdbc.Driver"); 12 | } catch (ClassNotFoundException e) { 13 | e.printStackTrace(); 14 | } 15 | } 16 | 17 | public static void main(String[] args) throws SQLException { 18 | Connection con = DriverManager.getConnection("jdbc:mysql://localhost/mahoutratings", "root", ""); 19 | PreparedStatement pstmt = con.prepareStatement("INSERT INTO stockitems VALUES (null, ?,?)"); 20 | for (int i = 1; i <= 2000; i++) { 21 | pstmt.setString(1, "AlbumArtist_" + i); 22 | pstmt.setString(2, "AlbumName_" + i); 23 | pstmt.execute(); 24 | } 25 | pstmt.close(); 26 | con.close(); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /scala/SparkSQLExample/src/main/scala/SparkSQLExample.scala: -------------------------------------------------------------------------------- 1 | import java.io._ 2 | 3 | import org.apache.spark.SparkContext 4 | import org.apache.spark.SparkContext._ 5 | import org.apache.spark.SparkConf 6 | 7 | import org.apache.spark.sql.SQLContext 8 | 9 | object SparkSQLExample { 10 | 11 | def main(args: Array[String]) { 12 | val conf = new SparkConf().setAppName("SparkSQLExample").setMaster("local") 13 | 14 | conf.set("spark.eventLog.enabled", "true") 15 | conf.set("spark.eventLog.dir", "file:///home/jason/sparksqltest/myeventlog/eventlog.out") 16 | 17 | val logger = new PrintWriter(new File("logging/sparksql.out")) 18 | 19 | val sc = new SparkContext(conf) 20 | val sql = SparkQueries.importDataToRDD(sc) 21 | 22 | logger.write("Sending Query " + System.currentTimeMillis() + "\n") 23 | SparkQueries.getUserLocations(sql, sc) 24 | 25 | System.exit(0) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /java/src/chapter9/TwitterStreamTransform.java: -------------------------------------------------------------------------------- 1 | package chapter9; 2 | 3 | import java.io.IOException; 4 | import java.util.Map; 5 | 6 | import org.codehaus.jackson.map.ObjectMapper; 7 | import org.codehaus.jackson.type.TypeReference; 8 | import org.springframework.integration.transformer.MessageTransformationException; 9 | 10 | public class TwitterStreamTransform { 11 | private ObjectMapper mapper = new ObjectMapper(); 12 | 13 | public String transform(String payload) { 14 | try { 15 | StringBuilder sb = new StringBuilder(); 16 | 17 | Map tweet = mapper.readValue(payload, 18 | new TypeReference>() { 19 | }); 20 | sb.append(tweet.get("created_at").toString()); 21 | sb.append("|"); 22 | sb.append(tweet.get("text").toString()); 23 | return sb.toString(); 24 | } catch (IOException e) { 25 | throw new MessageTransformationException( 26 | "[MLBook] - Cannot work on this tweet: " + e.getMessage(), 27 | e); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /scala/MLibDecisionTree/src/main/scala/SparkDecisionTree.scala: -------------------------------------------------------------------------------- 1 | import org.apache.spark.SparkContext 2 | import org.apache.spark.mllib.tree.DecisionTree 3 | import org.apache.spark.mllib.regression.LabeledPoint 4 | import org.apache.spark.mllib.linalg.Vectors 5 | import org.apache.spark.mllib.tree.configuration.Algo._ 6 | import org.apache.spark.mllib.tree.impurity.Entropy 7 | 8 | // Load and parse the data file 9 | val inputData = sc.textFile("mlibtestdata.csv") 10 | val mldata = data.map { line => 11 | val parts = line.split(',').map(_.toDouble) 12 | LabeledPoint(parts(0), Vectors.dense(parts.tail)) 13 | } 14 | 15 | // Run training algorithm to build the model 16 | val maxDepth = 5 17 | val model = DecisionTree.train(mldata, Classification, Entropy, maxDepth) 18 | 19 | 20 | val labelAndPreds = parsedData.map { point => 21 | val prediction = model.predict(point.features) 22 | (point.label, prediction) 23 | } 24 | 25 | val trainErr = labelAndPreds.filter(r => r._1 != r._2).count.toDouble / parsedData.count 26 | println("Training Error = " + trainErr) 27 | 28 | -------------------------------------------------------------------------------- /java/src/chapter10/PigCalcMonthsBelow.java: -------------------------------------------------------------------------------- 1 | package chapter10; 2 | 3 | import java.io.IOException; 4 | 5 | import org.apache.pig.EvalFunc; 6 | import org.apache.pig.data.Tuple; 7 | 8 | public class PigCalcMonthsBelow extends EvalFunc { 9 | 10 | @Override 11 | public Integer exec(Tuple tuple) throws IOException { 12 | System.out.println("exec called....."); 13 | // assume we're reading in the whole line so customer 14 | // id will be at position tuple.get(0) 15 | 16 | double[] months = new double[12]; 17 | for(int count = 1; count <= 12; count++) { 18 | months[count-1] = (Double)tuple.get(count); 19 | } 20 | 21 | double month13 = (Double)tuple.get(14); 22 | 23 | return monthsBelow(months, getMean(months)); 24 | } 25 | 26 | private int monthsBelow(double[] data, double mean) { 27 | int count = 0; 28 | for(double a : data) { 29 | if((a < (mean * 0.40))) count++; 30 | } 31 | return count; 32 | } 33 | 34 | private double getMean(double[] data) { 35 | double sum = 0.0; 36 | for(double a : data) { 37 | sum += a; 38 | } 39 | return sum/data.length; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /java/src/chapter8/WekaCluster.java: -------------------------------------------------------------------------------- 1 | package chapter8; 2 | import weka.clusterers.SimpleKMeans; 3 | import weka.core.Instances; 4 | import weka.core.converters.ConverterUtils.DataSource; 5 | 6 | public class WekaCluster { 7 | 8 | public WekaCluster(String filepath, int clusters) { 9 | try { 10 | Instances data = DataSource.read(filepath); 11 | 12 | SimpleKMeans kMeans = new SimpleKMeans(); 13 | kMeans.setNumClusters(clusters); 14 | kMeans.buildClusterer(data); 15 | 16 | Instances centroids = kMeans.getClusterCentroids(); 17 | for (int i = 0; i < centroids.numInstances(); i++) { 18 | System.out.println("Centroid: "+ i + ": " + centroids.instance(i)); 19 | } 20 | 21 | for (int i = 0; i < data.numInstances(); i++) { 22 | System.out.println(i + " in cluster" + kMeans.clusterInstance(data.instance(i))); 23 | } 24 | 25 | 26 | } catch (Exception e) { 27 | e.printStackTrace(); 28 | } 29 | 30 | } 31 | 32 | public static void main(String[] args) { 33 | // Pass the arff location and the number of clusters we want 34 | WekaCluster wc = new WekaCluster("/Users/Jason/kmeandata.arff", 6); 35 | 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /java/src/chapter10/HashtagJob.java: -------------------------------------------------------------------------------- 1 | package chapter10; 2 | import org.apache.hadoop.fs.Path; 3 | import org.apache.hadoop.io.IntWritable; 4 | import org.apache.hadoop.io.Text; 5 | import org.apache.hadoop.mapred.JobClient; 6 | import org.apache.hadoop.mapred.JobConf; 7 | import org.apache.hadoop.mapred.TextInputFormat; 8 | import org.apache.hadoop.mapred.TextOutputFormat; 9 | import org.apache.hadoop.mapred.FileInputFormat; 10 | import org.apache.hadoop.mapred.FileOutputFormat; 11 | 12 | 13 | public class HashtagJob { 14 | 15 | public static void main(String[] args) throws Exception { 16 | JobConf conf = new JobConf(HashtagJob.class); 17 | conf.setJobName("HashtagMiner"); 18 | 19 | conf.setOutputKeyClass(Text.class); 20 | conf.setOutputValueClass(IntWritable.class); 21 | 22 | conf.setMapperClass(HashtagMapper.class); 23 | conf.setReducerClass(HashtagReducer.class); 24 | 25 | conf.setInputFormat(TextInputFormat.class); 26 | conf.setOutputFormat(TextOutputFormat.class); 27 | 28 | FileInputFormat.setInputPaths(conf, new Path(args[0])); 29 | FileOutputFormat.setOutputPath(conf, new Path(args[1])); 30 | 31 | JobClient.runJob(conf); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /scala/SparkSQLExample/src/main/scala/SparkQueries.scala: -------------------------------------------------------------------------------- 1 | import org.apache.spark.SparkContext 2 | import org.apache.spark.SparkContext._ 3 | import org.apache.spark.SparkConf 4 | 5 | import org.apache.spark.sql.SQLContext 6 | 7 | case class Customer(guid: String, 8 | firstname: String, 9 | lastname: String, 10 | postcode: String, 11 | dob: String, 12 | latitude: Float, 13 | longitude: Float) 14 | 15 | //This code just copied from shark context testing 16 | object SparkQueries { 17 | 18 | def importDataToRDD(sc: SparkContext) : SQLContext = { 19 | val sqlContext = new SQLContext(sc) 20 | import sqlContext._ 21 | val customers = sc.textFile("/home/jason/sparksqldemo/customers.csv").map(_.split(",")).map(c=> Customer(c(0), c(1), c(2), c(3), c(4), c(5).toFloat, c(6).toFloat)) 22 | customers.registerAsTable("customers") 23 | cacheTable("customers") 24 | sqlContext 25 | } 26 | 27 | def getUserLocations(sqlContext: SQLContext, sc: SparkContext) { 28 | val query = "SELECT lastname, firstname, latitude, longitude FROM customers" 29 | sc.setJobDescription(query) 30 | val result = sqlContext.sql(query).collect.foreach(println) 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /README.txt: -------------------------------------------------------------------------------- 1 | Machine Learning - Hands On For Developers and Technical Professionals 2 | 3 | All the code covered in the book is here. There's also a directory with the test data used. 4 | 5 | Java 6 | ===== 7 | Within the src directory are the chapters as package names. Within each package name is the code for that chapter. The Apache Spark examples from Chapter 11 are run via the Spark program; please refer to Chapter 11. 8 | 9 | I've supplied a Maven pom file which will pull down the required jar files to build. 10 | 11 | Where possible I've not used path names to data files. Change as required then recompile. 12 | 13 | Scala 14 | ===== 15 | The Scala examples are covered in Chapter 11. The sbt build files are there for each project.To run them within Apache Spark, look at the run information in Chapter 11. 16 | 17 | R 18 | ===== 19 | The R examples are quite simple. You need to install the libraries 20 | required (these are outlined in the book in Chapter 12). Then load them 21 | into R using the source() function. 22 | 23 | For example: 24 | >source('sentiment.r') 25 | 26 | And it will run the script. For the Twitter OAuth example you need to 27 | edit the file with your Twitter app credentials. See Chapter 9 on how 28 | to do this. 29 | 30 | -------------------------------------------------------------------------------- /java/src/chapter3/WekaClassifier.java: -------------------------------------------------------------------------------- 1 | package chapter3; 2 | 3 | class WekaClassifier { 4 | public static double classify(Object[] i) 5 | throws Exception { 6 | 7 | double p = Double.NaN; 8 | p = WekaClassifier.N32ec89882(i); 9 | return p; 10 | } 11 | static double N32ec89882(Object []i) { 12 | double p = Double.NaN; 13 | if (i[0] == null) { 14 | p = 0; 15 | } else if (i[0].equals("end_rack")) { 16 | p = 0; 17 | } else if (i[0].equals("cd_spec")) { 18 | p = WekaClassifier.N473959d63(i); 19 | } else if (i[0].equals("std_rack")) { 20 | p = WekaClassifier.N63915224(i); 21 | } 22 | return p; 23 | } 24 | static double N473959d63(Object []i) { 25 | double p = Double.NaN; 26 | if (i[2] == null) { 27 | p = 0; 28 | } else if (((Double) i[2]).doubleValue() <= 80.0) { 29 | p = 0; 30 | } else if (((Double) i[2]).doubleValue() > 80.0) { 31 | p = 1; 32 | } 33 | return p; 34 | } 35 | static double N63915224(Object []i) { 36 | double p = Double.NaN; 37 | if (i[3] == null) { 38 | p = 0; 39 | } else if (i[3].equals("TRUE")) { 40 | p = 0; 41 | } else if (i[3].equals("FALSE")) { 42 | p = 1; 43 | } 44 | return p; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /java/src/chapter10/HashtagMapper.java: -------------------------------------------------------------------------------- 1 | package chapter10; 2 | import java.io.IOException; 3 | import java.util.regex.Matcher; 4 | import java.util.regex.Pattern; 5 | 6 | import org.apache.hadoop.io.IntWritable; 7 | import org.apache.hadoop.io.LongWritable; 8 | import org.apache.hadoop.io.Text; 9 | import org.apache.hadoop.mapred.MapReduceBase; 10 | import org.apache.hadoop.mapred.Mapper; 11 | import org.apache.hadoop.mapred.OutputCollector; 12 | import org.apache.hadoop.mapred.Reporter; 13 | 14 | public class HashtagMapper extends MapReduceBase implements 15 | Mapper { 16 | 17 | private final static IntWritable one = new IntWritable(1); 18 | private Text word = new Text(); 19 | 20 | @Override 21 | public void map(LongWritable key, Text value, 22 | OutputCollector output, Reporter reporter) 23 | throws IOException { 24 | 25 | String inputLine = value.toString().toLowerCase(); 26 | System.out.println("Reading: " + inputLine); 27 | String[] splitLine = inputLine.split("\\|"); 28 | System.out.println("Line has " + splitLine.length + " elements."); 29 | Pattern pattern = Pattern.compile("#[\\w]+"); 30 | if (splitLine.length > 1) { 31 | Matcher matcher = pattern.matcher(splitLine[1]); 32 | while (matcher.find()) { 33 | word.set(matcher.group()); 34 | output.collect(word, one); 35 | } 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /java/src/chapter6/DataConverter.java: -------------------------------------------------------------------------------- 1 | package chapter6; 2 | 3 | import java.io.BufferedReader; 4 | import java.io.FileReader; 5 | import java.io.FileWriter; 6 | 7 | public class DataConverter { 8 | 9 | public DataConverter() { 10 | try { 11 | FileWriter outputWriter = new FileWriter( 12 | "/Users/Jason/Downloads/output.dat"); 13 | int txcount = 0; 14 | 15 | BufferedReader csvReader = new BufferedReader(new FileReader( 16 | "/Users/Jason/Downloads/rawdata.csv")); 17 | 18 | // read the first line in but do nothing with it. 19 | String thisLine = csvReader.readLine(); 20 | String[] tokens = thisLine.split(","); 21 | // 22 | int i; 23 | while (true) { 24 | thisLine = csvReader.readLine(); 25 | if (thisLine == null) { 26 | break; 27 | } 28 | 29 | tokens = thisLine.split(","); 30 | i = 0; 31 | boolean firstElementInRow = true; 32 | for (String token : tokens) { 33 | if (token.trim().equals("true")) { 34 | if (firstElementInRow) { 35 | firstElementInRow = false; 36 | } else { 37 | outputWriter.append(","); 38 | } 39 | outputWriter.append(Integer.toString(i)); 40 | } 41 | i++; 42 | } 43 | outputWriter.append("\n"); 44 | txcount++; 45 | } 46 | outputWriter.close(); 47 | } catch (Exception e) { 48 | e.printStackTrace(); 49 | } 50 | } 51 | 52 | public static void main(String[] args) { 53 | DataConverter dc = new DataConverter(); 54 | 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /java/src/chapter7/MLLibSVMTest.java: -------------------------------------------------------------------------------- 1 | package chapter7; 2 | import weka.classifiers.Evaluation; 3 | import weka.classifiers.functions.LibSVM; 4 | import weka.clusterers.SimpleKMeans; 5 | import weka.core.Instance; 6 | import weka.core.Instances; 7 | import weka.core.converters.ConverterUtils.DataSource; 8 | 9 | 10 | public class MLLibSVMTest { 11 | public MLLibSVMTest(String filepath){ 12 | Instances data; 13 | try { 14 | data = DataSource.read(filepath); 15 | 16 | 17 | if (data.classIndex() == -1) 18 | data.setClassIndex(data.numAttributes() - 1); 19 | LibSVM svm = new LibSVM(); 20 | String[] options = weka.core.Utils.splitOptions("-K 0 -D 3 -split-percentage 10"); 21 | svm.setOptions(options); 22 | svm.buildClassifier(data); 23 | 24 | showInstanceClassifications(svm, data); 25 | 26 | 27 | } catch (Exception e) { 28 | e.printStackTrace(); 29 | } 30 | } 31 | 32 | public void showInstanceClassifications(LibSVM svm, Instances data) { 33 | try { 34 | for (int i = 0; i < data.numInstances(); i++) { 35 | System.out.println("Instance " + i + " is classified as a " 36 | + data.classAttribute().value((int)svm.classifyInstance(data.instance(i)))); 37 | } 38 | } catch (Exception e) { 39 | e.printStackTrace(); 40 | } 41 | } 42 | 43 | public static void main(String[] args) { 44 | MLLibSVMTest mllsvm = new MLLibSVMTest("/Users/Jason/work/data/v100k.arff"); 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /scala/ScalaTwitterStreaming/src/main/scala/TwitterStreaming.scala: -------------------------------------------------------------------------------- 1 | import org.apache.spark.streaming.{Seconds, StreamingContext} 2 | import StreamingContext._ 3 | import org.apache.spark.SparkContext._ 4 | import org.apache.spark.streaming.twitter._ 5 | import org.apache.spark.SparkConf 6 | 7 | object TwitterStreaming { 8 | def main(args: Array[String]) { 9 | 10 | // Add your twitter oauth settings here, full instructions on how to 11 | // obtain them in Chapter 9. 12 | System.setProperty("twitter4j.oauth.consumerKey", "wSs8crbV3WaTFvZfSMhzXA") 13 | System.setProperty("twitter4j.oauth.consumerSecret", "yKKv7UqutMsvXyMuQksU1MdZeeTaa2sloTWMhADZQE") 14 | System.setProperty("twitter4j.oauth.accessToken", "1248789104-k5QurElGEHMabclPwLJEwCJdroWbyZaHEHeydez") 15 | System.setProperty("twitter4j.oauth.accessTokenSecret", "ceqZkUPUYqv391qoKlFx6YGAe2Dx7gl5EY0xaHn9AmF5F") 16 | 17 | val sparkConf = new SparkConf().setAppName("TwitterStreaming") 18 | val streamingContext = new StreamingContext(sparkConf, Seconds(2)) 19 | val twitterStream = TwitterUtils.createStream(streamingContext, None) 20 | 21 | val words = twitterStream.flatMap(status => status.getText.split(" ")) 22 | 23 | val counts = words.map((_, 1)).reduceByKeyAndWindow(_ + _, Seconds(60)) 24 | .map{case (topic, count) => (count, topic)} 25 | .transform(_.sortByKey(false)) 26 | 27 | streamingContext.start() 28 | streamingContext.awaitTermination() 29 | } 30 | } -------------------------------------------------------------------------------- /java/src/chapter5/MLPProcessor.java: -------------------------------------------------------------------------------- 1 | package chapter5; 2 | 3 | import java.io.FileNotFoundException; 4 | import java.io.FileReader; 5 | import java.io.IOException; 6 | 7 | import weka.classifiers.Evaluation; 8 | import weka.classifiers.functions.MultilayerPerceptron; 9 | import weka.core.Instances; 10 | import weka.core.Utils; 11 | 12 | public class MLPProcessor { 13 | 14 | public MLPProcessor() { 15 | try { 16 | FileReader fr = new FileReader("/Users/Jason/work/data/vehicledata.arff"); 17 | 18 | Instances training = new Instances(fr); 19 | 20 | training.setClassIndex(training.numAttributes() -1); 21 | 22 | MultilayerPerceptron mlp = new MultilayerPerceptron(); 23 | mlp.setOptions(Utils.splitOptions("-L 0.3 -M 0.2 -N 500 -V 0 -S 0 -E 20 -H 4")); 24 | 25 | 26 | mlp.buildClassifier(training); 27 | 28 | FileReader tr = new FileReader("/Users/Jason/work/data/testdata.arff"); 29 | Instances testdata = new Instances(tr); 30 | testdata.setClassIndex(testdata.numAttributes() -1); 31 | 32 | Evaluation eval = new Evaluation(training); 33 | eval.evaluateModel(mlp, testdata); 34 | System.out.println(eval.toSummaryString("\nResults\n*******\n", false)); 35 | 36 | tr.close(); 37 | fr.close(); 38 | 39 | } catch (FileNotFoundException e) { 40 | e.printStackTrace(); 41 | } catch (IOException e) { 42 | e.printStackTrace(); 43 | } catch (Exception e) { 44 | e.printStackTrace(); 45 | } 46 | } 47 | 48 | public static void main(String[] args) { 49 | MLPProcessor mlp = new MLPProcessor(); 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /java/pom.xml: -------------------------------------------------------------------------------- 1 | 5 | 4.0.0 6 | com.datasentiment.mlbook 7 | mlbookexamples 8 | jar 9 | 1.0-SNAPSHOT 10 | mlbook 11 | http://maven.apache.org 12 | 13 | 14 | spring-milestones 15 | http://repo.springsource.org/libs-milestone/ 16 | 17 | 18 | 19 | 20 | nz.ac.waikato.cms.weka 21 | weka-stable 22 | 3.6.11 23 | 24 | 25 | org.springframework.xd 26 | spring-xd-test 27 | 1.0.0.RELEASE 28 | 29 | 30 | mysql 31 | mysql-connector-java 32 | 5.1.32 33 | 34 | 35 | org.apache.hadoop 36 | hadoop-core 37 | 1.2.1 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /java/src/chapter2/BritneyDilemma.java: -------------------------------------------------------------------------------- 1 | package chapter2; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import net.sf.classifier4J.ClassifierException; 7 | import net.sf.classifier4J.vector.HashMapTermVectorStorage; 8 | import net.sf.classifier4J.vector.TermVectorStorage; 9 | import net.sf.classifier4J.vector.VectorClassifier; 10 | 11 | public class BritneyDilemma { 12 | 13 | public BritneyDilemma() { 14 | List terms = new ArrayList(); 15 | terms.add("brittany spears"); 16 | terms.add("brittney spears"); 17 | terms.add("britany spears"); 18 | terms.add("britny spears"); 19 | terms.add("briteny spears"); 20 | terms.add("britteny spears"); 21 | terms.add("briney spears"); 22 | terms.add("brittny spears"); 23 | terms.add("brintey spears"); 24 | terms.add("britanny spears"); 25 | terms.add("britiny spears"); 26 | terms.add("britnet spears"); 27 | terms.add("britiney spears"); 28 | terms.add("christina aguilera"); 29 | terms.add("britney spears"); 30 | 31 | TermVectorStorage storage = new HashMapTermVectorStorage(); 32 | VectorClassifier vc = new VectorClassifier(storage); 33 | String correctString = "britney spears"; 34 | 35 | for (String term : terms) { 36 | try { 37 | vc.teachMatch("sterm", correctString); 38 | double result = vc.classify("sterm", term); 39 | System.out.println(term + " = " + result); 40 | } catch (ClassifierException e) { 41 | e.printStackTrace(); 42 | } 43 | } 44 | 45 | } 46 | 47 | public static void main(String[] args) { 48 | BritneyDilemma bd = new BritneyDilemma(); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /java/src/chapter6/ExtractProductNames.java: -------------------------------------------------------------------------------- 1 | package chapter6; 2 | 3 | import java.io.BufferedReader; 4 | import java.io.FileNotFoundException; 5 | import java.io.FileReader; 6 | import java.io.IOException; 7 | import java.sql.Connection; 8 | import java.sql.DriverManager; 9 | import java.sql.PreparedStatement; 10 | import java.sql.SQLException; 11 | 12 | public class ExtractProductNames { 13 | 14 | static { 15 | try { 16 | Class.forName("com.mysql.jdbc.Driver"); 17 | } catch (ClassNotFoundException e) { 18 | e.printStackTrace(); 19 | } 20 | } 21 | 22 | public ExtractProductNames() { 23 | try { 24 | Connection con = DriverManager.getConnection("jdbc:mysql://localhost/apriori","root",""); 25 | PreparedStatement pstmt = con.prepareStatement("INSERT INTO products (id, productname) VALUES (?,?)"); 26 | 27 | BufferedReader csvfile = new BufferedReader(new FileReader("/Users/Jason/Downloads/rawdata.csv")); 28 | String productsLine = csvfile.readLine(); 29 | String[] products = productsLine.split(","); 30 | 31 | for(int i = 0; i < products.length; i++) { 32 | pstmt.clearParameters(); 33 | pstmt.setInt(1, i); 34 | pstmt.setString(2, products[i].trim()); 35 | pstmt.execute(); 36 | System.out.println("Added: " + products[i] + " into db"); 37 | } 38 | pstmt.close(); 39 | con.close(); 40 | } catch (FileNotFoundException e) { 41 | e.printStackTrace(); 42 | } catch (IOException e) { 43 | e.printStackTrace(); 44 | } catch(SQLException e) { 45 | e.printStackTrace(); 46 | } 47 | } 48 | 49 | public static void main(String[] args) { 50 | ExtractProductNames epn = new ExtractProductNames(); 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /testdata/vehicledata.csv: -------------------------------------------------------------------------------- 1 | wheels,chassis,pax,vtype 2 | 6,20,39,Bus 3 | 8,23,11,Bus 4 | 5,3,1,Car 5 | 4,3,4,Car 6 | 5,3,1,Car 7 | 4,18,37,Bus 8 | 18,23,2,Truck 9 | 5,4,2,Car 10 | 1,1,1,Bike 11 | 18,26,2,Truck 12 | 1,1,1,Bike 13 | 1,1,1,Bike 14 | 1,1,1,Bike 15 | 8,21,28,Bus 16 | 5,4,2,Car 17 | 4,1,4,Car 18 | 18,24,2,Truck 19 | 18,23,2,Truck 20 | 8,15,33,Bus 21 | 7,14,39,Bus 22 | 1,1,1,Bike 23 | 4,1,1,Car 24 | 1,1,1,Bike 25 | 1,1,1,Bike 26 | 4,4,3,Car 27 | 4,2,3,Car 28 | 4,1,4,Car 29 | 6,16,13,Bus 30 | 18,22,1,Truck 31 | 7,15,28,Bus 32 | 1,1,1,Bike 33 | 5,4,2,Car 34 | 18,21,1,Truck 35 | 18,20,1,Truck 36 | 1,1,1,Bike 37 | 1,1,1,Bike 38 | 18,24,2,Truck 39 | 4,1,4,Car 40 | 1,1,1,Bike 41 | 18,20,1,Truck 42 | 4,2,3,Car 43 | 5,3,3,Car 44 | 18,21,2,Truck 45 | 6,13,27,Bus 46 | 1,1,1,Bike 47 | 8,13,22,Bus 48 | 4,4,4,Car 49 | 18,20,2,Truck 50 | 1,1,1,Bike 51 | 18,22,2,Truck 52 | 4,3,1,Car 53 | 5,13,34,Bus 54 | 5,3,4,Car 55 | 18,22,2,Truck 56 | 1,1,1,Bike 57 | 18,29,2,Truck 58 | 1,1,1,Bike 59 | 18,20,2,Truck 60 | 18,29,1,Truck 61 | 4,2,2,Car 62 | 8,13,33,Bus 63 | 1,1,1,Bike 64 | 6,14,15,Bus 65 | 4,22,24,Bus 66 | 7,15,38,Bus 67 | 5,3,2,Car 68 | 18,25,1,Truck 69 | 4,16,37,Bus 70 | 5,3,2,Car 71 | 4,3,3,Car 72 | 1,1,1,Bike 73 | 18,23,1,Truck 74 | 4,2,2,Car 75 | 18,27,1,Truck 76 | 18,20,1,Truck 77 | 18,28,1,Truck 78 | 4,1,1,Car 79 | 8,19,35,Bus 80 | 4,3,1,Car 81 | 1,1,1,Bike 82 | 4,3,3,Car 83 | 8,16,23,Bus 84 | 5,1,2,Car 85 | 18,29,1,Truck 86 | 5,4,1,Car 87 | 18,24,2,Truck 88 | 5,3,4,Car 89 | 1,1,1,Bike 90 | 18,27,1,Truck 91 | 4,3,3,Car 92 | 4,20,31,Bus 93 | 18,22,1,Truck 94 | 1,1,1,Bike 95 | 4,1,4,Car 96 | 4,1,1,Car 97 | 18,29,1,Truck 98 | 1,1,1,Bike 99 | 5,1,2,Car 100 | 18,29,2,Truck 101 | -------------------------------------------------------------------------------- /java/src/chapter10/CoreMethods.java: -------------------------------------------------------------------------------- 1 | package chapter10; 2 | 3 | import java.io.BufferedReader; 4 | import java.io.FileReader; 5 | import java.io.IOException; 6 | 7 | public class CoreMethods { 8 | 9 | public CoreMethods() { 10 | long start = System.currentTimeMillis(); 11 | try { 12 | BufferedReader in = new BufferedReader(new FileReader( 13 | "/Users/Jason/tmpdata.csv")); 14 | String str; 15 | while ((str = in.readLine()) != null) { 16 | String[] split = str.split(","); 17 | double[] values = new double[12]; 18 | // 0 = userid 19 | // 1 - 13 = months sales. Jan - Jan, Mar - Mar etc 20 | for (int i = 1; i <= 12; i++) { 21 | values[i-1] = Double.parseDouble(split[i]); 22 | } 23 | 24 | double mean = getMean(values); 25 | System.out.println("User id: " + split[0]); 26 | System.out.println("\tMean: " + mean); 27 | System.out.println("\tMonth 13 Sales Drop = " + calcSalesDrop(Double.parseDouble(split[13]), mean)); 28 | System.out.println("\tMonths 40% below mean: " + monthsBelow(values, mean)); 29 | } 30 | in.close(); 31 | } catch (IOException e) { 32 | e.printStackTrace(); 33 | } 34 | long stop = System.currentTimeMillis(); 35 | System.out.println("Took " + (stop - start) + " milliseconds."); 36 | } 37 | 38 | private int calcSalesDrop(double lastMonth, double mean) { 39 | return (int)(lastMonth - mean) < 0 ? 0 : (int)(lastMonth - mean); 40 | } 41 | 42 | private int monthsBelow(double[] data, double mean) { 43 | int count = 0; 44 | for(double a : data) { 45 | if((a < (mean * 0.40))) count++; 46 | } 47 | return count; 48 | } 49 | 50 | private double getMean(double[] data) { 51 | double sum = 0.0; 52 | for(double a : data) { 53 | sum += a; 54 | } 55 | return sum/data.length; 56 | } 57 | 58 | public static void main(String[] args) { 59 | CoreMethods coreMethods = new CoreMethods(); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /java/src/chapter10/ShowRecommendations.java: -------------------------------------------------------------------------------- 1 | package chapter10; 2 | 3 | import java.io.BufferedReader; 4 | import java.io.FileReader; 5 | import java.io.IOException; 6 | import java.sql.Connection; 7 | import java.sql.DriverManager; 8 | import java.sql.PreparedStatement; 9 | import java.sql.ResultSet; 10 | import java.sql.SQLException; 11 | import java.util.HashMap; 12 | import java.util.Map; 13 | 14 | public class ShowRecommendations { 15 | static { 16 | try { 17 | Class.forName("com.mysql.jdbc.Driver"); 18 | } catch (ClassNotFoundException e) { 19 | e.printStackTrace(); 20 | } 21 | } 22 | 23 | private Map recommendations = new HashMap(); 24 | 25 | public ShowRecommendations(int customerid) { 26 | initMap(); // load the recommendations in to the hash map 27 | try { 28 | String rec = recommendations.get(new Integer(customerid)); 29 | String output = generateRecommendation(rec); 30 | System.out.println("Customer: " + customerid + "\n" + output); 31 | } catch (Exception e) { 32 | e.printStackTrace(); 33 | } 34 | } 35 | 36 | private String generateRecommendation(String input) throws SQLException { 37 | StringBuilder sb = new StringBuilder(); 38 | System.out.println("Working on " + input); 39 | String tempstring = input.substring(1,input.length()-1); 40 | String[] products = tempstring.split(","); 41 | System.out.println("products = " + products.length); 42 | Connection con = DriverManager.getConnection( 43 | "jdbc:mysql://localhost/mahoutratings", "root", ""); 44 | PreparedStatement pstmt = con 45 | .prepareStatement("SELECT albumname, albumartist FROM stockitems WHERE id=?"); 46 | ResultSet rs = null; 47 | for (int i = 0; i < products.length; i++) { 48 | String[] itemSplit = products[i].split(":"); 49 | pstmt.setInt(1, Integer.parseInt(itemSplit[0])); 50 | rs = pstmt.executeQuery(); 51 | if (rs.next()) { 52 | sb.append("Album: " + rs.getString("albumname") + " by " 53 | + rs.getString("albumartist") + " rating: " 54 | + itemSplit[1] + "\n"); 55 | } 56 | } 57 | 58 | rs.close(); 59 | pstmt.close(); 60 | con.close(); 61 | 62 | return sb.toString(); 63 | } 64 | 65 | private void initMap() { 66 | try { 67 | BufferedReader in = new BufferedReader(new FileReader( 68 | "/Users/Jason/mahouttest.txt")); 69 | String str; 70 | while ((str = in.readLine()) != null) { 71 | String[] split = str.split("[ ]+"); 72 | System.out.println("adding: " + split[0] + "=" + split[1]); 73 | recommendations.put(Integer.parseInt(split[0]), split[1]); 74 | } 75 | in.close(); 76 | } catch (IOException e) { 77 | e.printStackTrace(); 78 | } 79 | } 80 | 81 | public static void main(String[] args) { 82 | if (args.length < 1) { 83 | System.out.println("Usage: ShowRecommendations [customerid]"); 84 | } else { 85 | ShowRecommendations sr = new ShowRecommendations(Integer.parseInt(args[0])); 86 | } 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /java/src/chapter10/CoreMethodsMapper.java: -------------------------------------------------------------------------------- 1 | package chapter10; 2 | 3 | import java.io.IOException; 4 | 5 | import org.apache.hadoop.fs.Path; 6 | import org.apache.hadoop.io.LongWritable; 7 | import org.apache.hadoop.io.Text; 8 | import org.apache.hadoop.mapred.FileInputFormat; 9 | import org.apache.hadoop.mapred.JobClient; 10 | import org.apache.hadoop.mapred.JobConf; 11 | import org.apache.hadoop.mapred.MapReduceBase; 12 | import org.apache.hadoop.mapred.Mapper; 13 | import org.apache.hadoop.mapred.OutputCollector; 14 | import org.apache.hadoop.mapred.Reporter; 15 | import org.apache.hadoop.mapred.TextInputFormat; 16 | import org.apache.hadoop.mapred.TextOutputFormat; 17 | import org.apache.hadoop.mapred.FileOutputFormat; 18 | 19 | public class CoreMethodsMapper { 20 | 21 | public static class Map extends MapReduceBase implements 22 | Mapper { 23 | private Text userid = new Text(); 24 | private Text userinfo = new Text(); 25 | 26 | public void map(LongWritable key, Text value, 27 | OutputCollector output, Reporter reporter) 28 | throws IOException { 29 | String[] split = value.toString().split(","); 30 | double[] datavalues = new double[12]; 31 | 32 | for (int i = 1; i <= 12; i++) { 33 | datavalues[i - 1] = Double.parseDouble(split[i]); 34 | } 35 | 36 | double mean = getMean(datavalues); 37 | 38 | StringBuilder sb = new StringBuilder() 39 | .append(mean + "\t") 40 | .append(calcSalesDrop(Double.parseDouble(split[13]), mean) 41 | + "\t").append(monthsBelow(datavalues, mean)); 42 | 43 | userid.set(split[0]); // define our output key, the user id 44 | userinfo.set(sb.toString()); // define the output data 45 | 46 | output.collect(userid, userinfo); 47 | } 48 | 49 | private int calcSalesDrop(double lastMonth, double mean) { 50 | return (int) (lastMonth - mean) < 0 ? 0 : (int) (lastMonth - mean); 51 | } 52 | 53 | private int monthsBelow(double[] data, double mean) { 54 | int count = 0; 55 | for (double a : data) { 56 | if ((a < (mean * 0.40))) 57 | count++; 58 | } 59 | return count; 60 | } 61 | 62 | private double getMean(double[] data) { 63 | double sum = 0.0; 64 | for (double a : data) { 65 | sum += a; 66 | } 67 | return sum / data.length; 68 | } 69 | 70 | } 71 | 72 | public static void main(String args[]) throws IOException { 73 | JobConf conf = new JobConf(CoreMethodsMapper.class); 74 | conf.setJobName("CoreMethods Sales Data"); 75 | conf.setNumReduceTasks(0); // no reducers! 76 | 77 | conf.setOutputKeyClass(Text.class); 78 | conf.setOutputValueClass(Text.class); 79 | 80 | conf.setMapperClass(Map.class); // the map class within this code 81 | 82 | conf.setInputFormat(TextInputFormat.class); 83 | conf.setOutputFormat(TextOutputFormat.class); 84 | 85 | FileInputFormat.setInputPaths(conf, new Path(args[0])); 86 | FileOutputFormat.setOutputPath(conf, new Path(args[1])); 87 | 88 | JobClient.runJob(conf); 89 | 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /java/src/chapter4/BayesNetExample.java: -------------------------------------------------------------------------------- 1 | package chapter4; 2 | 3 | import javabayes.Helpers.BayesNetHelper; 4 | import javabayes.InferenceGraphs.InferenceGraph; 5 | import javabayes.InferenceGraphs.InferenceGraphNode; 6 | 7 | public class BayesNetExample { 8 | public BayesNetExample() { 9 | InferenceGraph inferenceGraph = new InferenceGraph(); 10 | 11 | InferenceGraphNode age = BayesNetHelper.createNode(inferenceGraph, 12 | "under55", "<55", ">55"); 13 | InferenceGraphNode smoker = BayesNetHelper.createNode(inferenceGraph, 14 | "smoker", "smokes", "doesnotsmoke"); 15 | InferenceGraphNode duration = BayesNetHelper.createNode(inferenceGraph, 16 | "duration", "<2Y", ">2Y"); 17 | InferenceGraphNode surgical = BayesNetHelper.createNode(inferenceGraph, 18 | "surgicalOutcome", "positive", "negative"); 19 | 20 | inferenceGraph.create_arc(age, smoker); 21 | inferenceGraph.create_arc(smoker, surgical); 22 | inferenceGraph.create_arc(duration, surgical); 23 | 24 | BayesNetHelper.setProbabilityValues(smoker, "<55", 0.4, 0.6); 25 | BayesNetHelper.setProbabilityValues(smoker, ">55", 0.8, 0.2); 26 | 27 | BayesNetHelper 28 | .setProbabilityValues(surgical, "smokes", "<2Y", 0.1, 0.9); 29 | BayesNetHelper.setProbabilityValues(surgical, "smokes", ">2Y", 0.01, 30 | 0.99); 31 | BayesNetHelper.setProbabilityValues(surgical, "doesnotsmoke", "<2Y", 32 | 0.8, 0.2); 33 | BayesNetHelper.setProbabilityValues(surgical, "doesnotsmoke", ">2Y", 34 | 0.58, 0.42); 35 | 36 | BayesNetHelper.setProbabilityValues(duration, 0.9, 0.1); 37 | 38 | BayesNetHelper.setProbabilityValues(age, 0.8, 0.2); 39 | 40 | double belief = BayesNetHelper.getBelief(inferenceGraph, surgical); 41 | System.out.println("The probability of surgery being positive: " 42 | + belief); 43 | 44 | age.set_observation_value("<55"); 45 | belief = BayesNetHelper.getBelief(inferenceGraph, surgical); 46 | System.out 47 | .println("The probability of surgery being positive and patient is younger than 55 : " 48 | + belief); 49 | 50 | smoker.set_observation_value("smokes"); 51 | belief = BayesNetHelper.getBelief(inferenceGraph, surgical); 52 | System.out 53 | .println("The probability of surgery being positive for a smoker, younger than 55: " 54 | + belief); 55 | 56 | duration.set_observation_value(">2Y"); 57 | belief = BayesNetHelper.getBelief(inferenceGraph, surgical); 58 | System.out 59 | .println("The probability of surgery being positive for a smoker, younger than 55 with symptoms over 2 years: " 60 | + belief); 61 | 62 | } 63 | 64 | public static void main(String[] args) { 65 | new BayesNetExample(); 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /java/src/chapter3/WekaWrapper.java: -------------------------------------------------------------------------------- 1 | package chapter3; 2 | 3 | import weka.core.Attribute; 4 | import weka.core.Capabilities; 5 | import weka.core.Capabilities.Capability; 6 | import weka.core.Instance; 7 | import weka.core.Instances; 8 | import weka.core.RevisionUtils; 9 | import weka.classifiers.Classifier; 10 | 11 | public class WekaWrapper 12 | extends Classifier { 13 | 14 | /** 15 | * Returns only the toString() method. 16 | * 17 | * @return a string describing the classifier 18 | */ 19 | public String globalInfo() { 20 | return toString(); 21 | } 22 | 23 | /** 24 | * Returns the capabilities of this classifier. 25 | * 26 | * @return the capabilities 27 | */ 28 | public Capabilities getCapabilities() { 29 | weka.core.Capabilities result = new weka.core.Capabilities(this); 30 | 31 | result.enable(weka.core.Capabilities.Capability.NOMINAL_ATTRIBUTES); 32 | result.enable(weka.core.Capabilities.Capability.NUMERIC_ATTRIBUTES); 33 | result.enable(weka.core.Capabilities.Capability.DATE_ATTRIBUTES); 34 | result.enable(weka.core.Capabilities.Capability.MISSING_VALUES); 35 | result.enable(weka.core.Capabilities.Capability.NOMINAL_CLASS); 36 | result.enable(weka.core.Capabilities.Capability.MISSING_CLASS_VALUES); 37 | 38 | result.setMinimumNumberInstances(0); 39 | 40 | return result; 41 | } 42 | 43 | /** 44 | * only checks the data against its capabilities. 45 | * 46 | * @param i the training data 47 | */ 48 | public void buildClassifier(Instances i) throws Exception { 49 | // can classifier handle the data? 50 | getCapabilities().testWithFail(i); 51 | } 52 | 53 | /** 54 | * Classifies the given instance. 55 | * 56 | * @param i the instance to classify 57 | * @return the classification result 58 | */ 59 | public double classifyInstance(Instance i) throws Exception { 60 | Object[] s = new Object[i.numAttributes()]; 61 | 62 | for (int j = 0; j < s.length; j++) { 63 | if (!i.isMissing(j)) { 64 | if (i.attribute(j).isNominal()) 65 | s[j] = new String(i.stringValue(j)); 66 | else if (i.attribute(j).isNumeric()) 67 | s[j] = new Double(i.value(j)); 68 | } 69 | } 70 | 71 | // set class value to missing 72 | s[i.classIndex()] = null; 73 | 74 | return WekaClassifier.classify(s); 75 | } 76 | 77 | /** 78 | * Returns the revision string. 79 | * 80 | * @return the revision 81 | */ 82 | public String getRevision() { 83 | return RevisionUtils.extract("1.0"); 84 | } 85 | 86 | /** 87 | * Returns only the classnames and what classifier it is based on. 88 | * 89 | * @return a short description 90 | */ 91 | public String toString() { 92 | return "Auto-generated classifier wrapper, based on weka.classifiers.trees.J48 (generated with Weka 3.6.10).\n" + this.getClass().getName() + "/WekaClassifier"; 93 | } 94 | 95 | /** 96 | * Runs the classfier from commandline. 97 | * 98 | * @param args the commandline arguments 99 | */ 100 | public static void main(String args[]) { 101 | runClassifier(new WekaWrapper(), args); 102 | } 103 | } -------------------------------------------------------------------------------- /scala/SparkStreaming/testtext.txt: -------------------------------------------------------------------------------- 1 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur vel fringilla nunc. Maecenas fringilla velit vitae varius rutrum. Nulla malesuada tincidunt enim sit amet lobortis. Aliquam posuere metus id malesuada elementum. Fusce dictum felis ac volutpat porta. In blandit nulla nisl, at posuere quam faucibus a. Sed magna dolor, hendrerit et nisi vel, pharetra sagittis mi. Nullam eget neque diam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut urna arcu, commodo nec condimentum non, tempor quis leo. Pellentesque turpis metus, condimentum ac odio eu, auctor molestie ipsum. Morbi in nunc eget massa sagittis pretium. In placerat lacus et erat suscipit aliquet. Suspendisse ac metus eros. Nunc sit amet iaculis ligula. 2 | 3 | Donec a consectetur justo, nec placerat turpis. Donec venenatis libero arcu, a elementum est luctus id. Vivamus congue, risus auctor bibendum suscipit, velit arcu tristique odio, a vulputate mauris orci in purus. Donec non nibh nec mauris eleifend pretium. Etiam eget scelerisque sem, vitae dignissim velit. Aliquam erat volutpat. Vivamus blandit nisl ac ante accumsan iaculis. Morbi volutpat est in commodo rhoncus. Vestibulum dapibus eget neque vehicula varius. Donec est dui, feugiat sit amet luctus et, scelerisque sit amet ligula. 4 | 5 | Mauris sed neque scelerisque, placerat quam ac, elementum lorem. Etiam interdum nisl eu tempus semper. Curabitur porta porttitor sollicitudin. Duis eu augue consectetur, dignissim nibh a, volutpat eros. Nam eleifend eget magna nec suscipit. Mauris varius augue vel congue rutrum. Ut pretium ligula elit, in condimentum turpis commodo ac. Sed quis rhoncus mauris. Curabitur tristique non lorem id pharetra. Praesent ullamcorper fermentum eros. Duis vel orci vehicula, feugiat tortor vitae, rhoncus lorem. Mauris congue metus euismod fringilla gravida. Suspendisse tincidunt erat et nulla tempor, sit amet feugiat elit varius. 6 | 7 | Vivamus aliquam ligula sit amet fringilla dignissim. Ut at lacus condimentum, mollis justo ut, blandit neque. Duis interdum tincidunt leo eu fermentum. Sed in nulla sapien. Nullam vel eleifend nibh. Maecenas non ante vel est vehicula euismod. Nulla fermentum, orci et rhoncus elementum, urna justo pulvinar eros, eu laoreet risus nulla bibendum metus. Vivamus sodales mauris ac metus pulvinar dapibus. Phasellus molestie dui quis convallis varius. Quisque adipiscing nulla est, in aliquam est ultrices nec. Mauris ac nulla id massa faucibus vehicula. 8 | 9 | Pellentesque porta lacinia augue. Fusce bibendum vitae mauris in cursus. Donec faucibus odio rutrum orci dapibus semper. Nulla facilisi. Donec blandit tortor nec turpis luctus pharetra at vitae elit. Cras et rhoncus augue. Suspendisse potenti. Cras tortor dolor, convallis ut pellentesque nec, luctus sit amet arcu. Sed a euismod mauris. Nulla vel scelerisque odio, id laoreet quam. Cras dapibus diam sit amet velit fermentum congue. 10 | 11 | Aliquam scelerisque tincidunt elementum. Suspendisse mattis at dolor eget tincidunt. Cras velit dolor, eleifend ut turpis id, mollis consectetur quam. Pellentesque gravida tellus eget dolor ultrices aliquam. Proin eu justo vitae enim luctus posuere id sit amet nibh. Nunc malesuada auctor turpis vel hendrerit. Mauris placerat dapibus sem sit amet sagittis. 12 | 13 | Integer blandit fringilla rhoncus. Sed viverra nec nulla nec pretium. Proin quis dui non ipsum tincidunt iaculis vitae et risus. Cras porta vestibulum mauris, non porttitor nulla mollis eu. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Ut interdum mi justo, sed tincidunt erat fringilla in. Vivamus eu venenatis massa, in viverra justo. Vestibulum ultricies est at dui vestibulum egestas. Fusce pellentesque dui a libero viverra porttitor. Fusce feugiat, leo a vestibulum faucibus, nulla metus eleifend tortor, sed lacinia orci purus a est. Nullam viverra, massa vitae ornare porta, quam arcu tincidunt mauris, sed lacinia metus quam egestas velit. 14 | 15 | Phasellus id pellentesque purus. Phasellus viverra in quam sodales semper. Sed dictum tristique odio non porttitor. Suspendisse hendrerit nisl viverra, laoreet ipsum eleifend, ornare libero. Sed euismod id orci vel imperdiet. Proin fermentum augue purus, sed sollicitudin nisl placerat ac. Aenean varius leo quis diam hendrerit auctor. Nam id mauris lectus. Sed quam enim, varius at dolor et, euismod ullamcorper lacus. Sed dictum leo et lacus pellentesque, quis tempus arcu rutrum. Fusce auctor lectus vel dui feugiat tincidunt. Praesent auctor molestie hendrerit. 16 | 17 | Mauris ut tortor vitae ante imperdiet hendrerit. Donec eleifend elementum turpis, sit amet tincidunt nibh ornare pharetra. Vestibulum tincidunt accumsan auctor. Vivamus vel aliquam turpis. Praesent blandit, eros a tempor pretium, ligula tellus tincidunt mi, vitae egestas purus tortor sit amet magna. Integer convallis viverra ante a egestas. Nullam tellus elit, sollicitudin eget neque eu, aliquam varius sapien. Mauris rhoncus felis leo, at posuere libero condimentum facilisis. 18 | 19 | Vivamus eu lacinia velit. Nullam dapibus vestibulum magna vitae gravida. Donec pulvinar ante vel magna luctus interdum. Aenean sagittis purus nulla. Cras congue neque eu ante placerat, ut iaculis enim feugiat. Nulla consequat tristique ullamcorper. Curabitur vitae tortor tristique, volutpat dui eu, hendrerit enim. Nulla nibh urna, dignissim vitae metus id, sollicitudin pellentesque lectus. Vivamus et nibh in odio auctor imperdiet eget at neque. Aliquam id mi ut orci euismod condimentum vitae quis risus. -------------------------------------------------------------------------------- /java/src/chapter6/DataReader.java: -------------------------------------------------------------------------------- 1 | package chapter6; 2 | 3 | import java.sql.Connection; 4 | import java.sql.DriverManager; 5 | import java.sql.PreparedStatement; 6 | import java.sql.ResultSet; 7 | import java.util.ArrayList; 8 | import java.util.HashMap; 9 | import java.util.List; 10 | import java.util.Map; 11 | 12 | import org.apache.hadoop.conf.Configuration; 13 | import org.apache.hadoop.fs.FileSystem; 14 | import org.apache.hadoop.fs.Path; 15 | import org.apache.hadoop.io.LongWritable; 16 | import org.apache.hadoop.io.Text; 17 | import org.apache.mahout.common.Pair; 18 | import org.apache.mahout.fpm.pfpgrowth.convertors.string.TopKStringPatterns; 19 | 20 | public class DataReader { 21 | static { 22 | try { 23 | Class.forName("com.mysql.jdbc.Driver"); 24 | } catch (ClassNotFoundException e) { 25 | e.printStackTrace(); 26 | } 27 | } 28 | 29 | public static Map readFrequencyFile(Configuration configuration, String fileName) throws Exception { 30 | FileSystem fs = FileSystem.get(configuration); 31 | org.apache.hadoop.io.SequenceFile.Reader frequencyReader = new org.apache.hadoop.io.SequenceFile.Reader(fs, 32 | new Path(fileName), configuration); 33 | Map frequency = new HashMap(); 34 | Text key = new Text(); 35 | LongWritable value = new LongWritable(); 36 | while(frequencyReader.next(key, value)) { 37 | frequency.put(Integer.parseInt(key.toString()), value.get()); 38 | } 39 | return frequency; 40 | } 41 | 42 | public static Map loadItems() { 43 | Map products = new HashMap(); 44 | try { 45 | Connection con = DriverManager.getConnection("jdbc:mysql://localhost/apriori","root",""); 46 | PreparedStatement pstmt = con.prepareStatement("SELECT * FROM products"); 47 | ResultSet rs = pstmt.executeQuery(); 48 | while(rs.next()) { 49 | products.put(new Integer(rs.getInt("id")), rs.getString("productname")); 50 | } 51 | rs.close(); 52 | pstmt.close(); 53 | con.close(); 54 | } catch(Exception e) { 55 | e.printStackTrace(); 56 | } 57 | return products; 58 | } 59 | 60 | public static void processResults(Configuration configuration, Map products) throws Exception { 61 | String frequencyfilename = ""; 62 | String frequencypatternsfilename = ""; 63 | double userMinimumSupport = 3; 64 | double userMinimumConfidence = 3; 65 | int transactioncount = 1361; 66 | 67 | Map frequency = readFrequencyFile(configuration, frequencyfilename); 68 | 69 | FileSystem fs = FileSystem.get(configuration); 70 | 71 | org.apache.hadoop.io.SequenceFile.Reader frequentPatternsReader = new org.apache.hadoop.io.SequenceFile.Reader(fs, 72 | new Path(fileName), configuration); 73 | Text key = new Text(); 74 | TopKStringPatterns value = new TopKStringPatterns(); 75 | 76 | while(frequentPatternsReader.next(key, value)) { 77 | long firstFrequencyItem = -1; 78 | String firstItemId = null; 79 | List, Long>> patterns = value.getPatterns(); 80 | int i = 0; 81 | for(Pair, Long> pair: patterns) { 82 | List itemList = pair.getFirst(); 83 | Long occurrence = pair.getSecond(); 84 | if (i == 0) { 85 | firstFrequencyItem = occurrence; 86 | firstItemId = itemList.get(0); 87 | } else { 88 | double support = (double)occurrence / transactioncount; 89 | double confidence = (double)occurrence / firstFrequencyItem; 90 | if (support > userMinimumSupport 91 | && confidence > userMinimumConfidence) { 92 | List listWithoutFirstItem = new ArrayList(); 93 | for(String itemId: itemList) { 94 | if (!itemId.equals(firstItemId)) { 95 | listWithoutFirstItem.add(products.get(Integer.parseInt(itemId))); 96 | } 97 | } 98 | String firstItem = products.get(Integer.parseInt(firstItemId)); 99 | listWithoutFirstItem.remove(firstItemId); 100 | System.out.printf( 101 | "%s => %s: support=%.3f, confidence=%.3f", 102 | listWithoutFirstItem, 103 | firstItem, 104 | support, 105 | confidence); 106 | 107 | if (itemList.size() == 2) { 108 | int otherItemId = -1; 109 | for(String itemId: itemList) { 110 | if (!itemId.equals(firstItemId)) { 111 | otherItemId = Integer.parseInt(itemId); 112 | break; 113 | } 114 | } 115 | long otherItemOccurrence = frequency.get(otherItemId); 116 | 117 | double lift = calcLift(occurrence, transactioncount, firstFrequencyItem, otherItemOccurrence); 118 | double conviction = calcConviction(confidence, transactioncount, otherItemOccurrence); 119 | System.out.printf( 120 | ", lift=%.3f, conviction=%.3f", 121 | lift, conviction); 122 | } 123 | System.out.printf("\n"); 124 | } 125 | } 126 | i++; 127 | } 128 | } 129 | frequentPatternsReader.close(); 130 | } 131 | 132 | private static double calcLift(double occurrence, int transcationcount, long firstfreq, long otheritemoccurences) { 133 | return ((double)occurrence * transcationcount) / (firstfreq * otheritemoccurences); 134 | } 135 | 136 | private static double calcConviction(double confidence, int transactioncount, double otheroccurrences) { 137 | return (1.0 - otheroccurrences / transactioncount) / (1.0 - confidence); 138 | } 139 | 140 | public static void main(String[] args) throws Exception{ 141 | Configuration configuration = new Configuration(); 142 | processResults(configuration,loadItems()); 143 | } 144 | 145 | } 146 | --------------------------------------------------------------------------------