Skip to content

Instantly share code, notes, and snippets.

@MarioAriasC
MarioAriasC / kryo.kt
Created September 3, 2015 09:00
Kryo serialization works out-of-the-box with Kotlin
package org.cakesolutions.spark.kryo
import com.esotericsoftware.kryo.Kryo
import com.esotericsoftware.kryo.io.Input
import com.esotericsoftware.kryo.io.Output
import java.io.FileInputStream
import java.io.FileOutputStream
fun main(args: Array<String>) {
val kryo = Kryo()
@MarioAriasC
MarioAriasC / spark_sql.kt
Last active June 8, 2020 03:35
SQL queries on Kotlin data class with Apache Spark
package org.cakesolutions.spark.sql
import org.apache.spark.SparkConf
import org.apache.spark.api.java.JavaSparkContext
import org.apache.spark.sql.DataFrame
import org.apache.spark.sql.Row
import org.apache.spark.sql.SQLContext
import org.cakesolutions.spark.awaitEnter
import java.io.Serializable
@MarioAriasC
MarioAriasC / hello.kt
Last active May 21, 2017 21:05
HelloWorld
fun main(args: Array<String>){
println("Hello, World")
}
<repository>
<id>central</id>
<name>bintray</name>
<url>http://jcenter.bintray.com</url>
</repository>
<dependency>
<groupId>org.funktionale</groupId>
<artifactId>funktionale-composition</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.funktionale</groupId>
<artifactId>funktionale-all</artifactId>
<version>1.1</version>
</dependency>
val total = items
.map(extract)
.map(discount)
.map(price)
.sum()
val total = items
.map(extract andThen discount andThen price)
.sum()
val extract: (Item) -> Pair<Double, Double> = { (_, itemPrice, discount, quantity) -> itemPrice * quantity to discount }
val discount: (Pair<Double, Double>) -> Pair<Double, Double> = { (price, discount) -> price to discount / 100.0 }
val price: (Pair<Double, Double>) -> Double = { (price, discPercentage) -> price - (price * discPercentage) }
val items = ItemDao.findItemsForInvoice(1)
val total = items
.map { (_, itemPrice, discount, quantity) -> itemPrice * quantity to discount }
.map { (price, discount) -> price to discount / 100.0 }
.map { (price, discPercentage) -> price - (price * discPercentage) }
.sum()