Skip to content

Instantly share code, notes, and snippets.

View satendrakumar's full-sized avatar
:octocat:

Satendra Kumar satendrakumar

:octocat:
View GitHub Profile
@satendrakumar
satendrakumar / Angular2.scala
Created July 25, 2017 10:54 — forked from jroper/Angular2.scala
Play Angular 2 integration
import play.sbt.PlayRunHook
import sbt._
import java.net.InetSocketAddress
object Angular2 {
def apply(log: Logger, base: File, target: File): PlayRunHook = {
object Angular2Process extends PlayRunHook {
private var watchProcess: Option[Process] = None
@satendrakumar
satendrakumar / Loops.scala
Last active August 26, 2017 06:49
while loop alternatives in Scala
import java.io._
object Loop1 extends App {
//Java way
val inputStream: BufferedInputStream = new BufferedInputStream(new FileInputStream("input.csv"))
val outputStream = new BufferedOutputStream(new FileOutputStream("output.csv"))
val buffer = new Array[Byte](32 * 1024)
var bytesRead: Int = inputStream.read(buffer)
while (bytesRead > 0) {
println("writing.......")
@satendrakumar
satendrakumar / FoldLeft.scala
Created June 11, 2017 12:17
Capabilities of foldLeft of Scala
object FoldLeft extends App {
def reverse(list: List[Int]): List[Int] =
list.foldLeft[List[Int]](Nil)((acc, element) => element :: acc)
def dedupe(list: List[Int]): List[Int] = {
list.foldLeft[List[Int]](Nil)((acc, element) => if (acc.contains(element)) acc else acc :+ element)
}
@satendrakumar
satendrakumar / RemoveHeaders.scala
Last active May 10, 2017 07:49
Remove headers from csv files without comparing each record using Spark
import java.io.{BufferedReader, File, InputStreamReader}
import javax.annotation.concurrent.NotThreadSafe
import org.apache.hadoop.io.{LongWritable, Text}
import org.apache.hadoop.mapred.{FileSplit, TextInputFormat}
import org.apache.spark.broadcast.Broadcast
import org.apache.spark.rdd.HadoopRDD
import org.apache.spark.{SparkConf, SparkContext}
@NotThreadSafe
@satendrakumar
satendrakumar / KafkaProducerAndConsumer.scala
Created May 9, 2017 04:19
Read & Write data from kafka.
//Producer
import java.util.Properties
import java.util.concurrent.Future
import org.apache.kafka.clients.producer.{ProducerRecord, RecordMetadata}
import org.apache.kafka.common.serialization.StringSerializer
@satendrakumar
satendrakumar / ParquetReadWrite.scala
Last active May 8, 2017 10:50
Read/write data to/from Parquet.
import org.apache.spark.sql.{DataFrame, SQLContext}
import org.apache.spark.{SparkConf, SparkContext}
case class Demo(id: Int, name: String, info: Map[String, String], inner: Inner)
case class Inner(firstName: String)
object ParquetReadWrite extends App {
import javax.inject.Inject
import com.google.inject._
import scala.collection.JavaConversions._
object DemoApp extends App {
@satendrakumar
satendrakumar / Retry.scala
Last active April 27, 2017 07:53
Retry option for failure scenarios
def withRetry[T](retryCount: Int)(t: => T): T =
try
t
catch {
case NonFatal(th) =>
th.printStackTrace()
if (retryCount >= 0) {
println("Retrying............... [remaining count: [${retryCount-1}`]")
@satendrakumar
satendrakumar / JsonFormatter.scala
Created April 26, 2017 18:10
Single line Play Json parser for reading json and writing json from case class
import play.api.libs.json._
object JsonFormatter {
implicit val residentReads = Json.reads[Resident]
}
case class Resident(name: String, age: Int, role: Option[String])
@satendrakumar
satendrakumar / application.conf
Last active April 27, 2017 08:06
Play default thread pool setting
akka {
actor {
default-dispatcher {
fork-join-executor {
parallelism-factor = 8
parallelism-min = 16