Skip to content

Instantly share code, notes, and snippets.

@bbejeck
bbejeck / buildingKStreamAndGlobalKTable.java
Created September 15, 2017 14:32
Builds The KStream and GlobalKTable
// configuration and Serde creation left out for clarity
KStream<String, String> dataByAirportStream = builder.stream("raw-airline-data");
GlobalKTable<String, byte[]> regressionsByAirPortTable = builder.globalTable(Serdes.String(),
byteArraySerde,
"onlineRegression-by-airport");
// stream reads raw data joins with coefficients then makes prediction
dataByAirportStream.join(regressionsByAirPortTable,
(k, v) -> k,
DataRegression::new)
@bbejeck
bbejeck / dataByAirportStream.java
Created September 15, 2017 14:00
Kafka Streams Topology for online predictions
dataByAirportStream.join(regressionsByAirPortTable,(k, v) -> k, DataRegression::new)
.mapValues(Predictor::predict)
.filter((k, v) -> v != null)
.peek((k, v) -> System.out.println("Prediction " + v))
.to("predictions");
@bbejeck
bbejeck / tmux-kafka.sh
Created December 11, 2015 18:40
A script for using tmux with kafka
#!/bin/sh
KAFKA_DIR=/usr/local/kafka_2.11-0.9.0.0-SNAPSHOT
START_ZK="./bin/zookeeper-server-start.sh"
ZK_PROPS="config/zookeeper.properties"
START_KAFKA="./bin/kafka-server-start.sh"
KAFKA_PROPS="config/server.properties"
@bbejeck
bbejeck / CombineByKey.scala
Created August 7, 2015 14:52
Source code for CombineByKey blog post
package bbejeck.grouping
import org.apache.log4j.{Level, Logger}
import org.apache.spark.{SparkConf, SparkContext}
import scala.collection.mutable
/**
* Created by bbejeck on 8/6/15.
* Example usage of combineByKey
@bbejeck
bbejeck / AggregateByKey.scala
Created July 31, 2015 18:19
Sample code for the Spark PairRDDFunctions - AggregateByKey
package bbejeck.grouping
import org.apache.log4j.{Level, Logger}
import org.apache.spark.{SparkConf, SparkContext}
import scala.collection.mutable
/**
* Created by bbejeck on 7/31/15.
*
@bbejeck
bbejeck / PartiallyAppliedFunctionsTest.java
Created July 17, 2015 15:46
Source code from "Partially Applied Functions in Java" post.
package bbejeck.function;
import org.junit.Test;
import java.util.function.BinaryOperator;
import java.util.function.Function;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
@bbejeck
bbejeck / ThrowingFunction.java
Created March 13, 2015 01:42
Simple approach to being able to use the Function interface with checked Exceptions.
/*
* *
*
*
* Copyright 2015 Bill Bejeck
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
@bbejeck
bbejeck / LambdaGuavaTest.java
Created December 23, 2011 05:25
Source for Guava Functions and Java 8 Lambdas
import bbejeck.guava.futures.SearchingTestBase;
import bbejeck.support.model.Person;
import com.google.common.base.Function;
import com.google.common.util.concurrent.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.lang.SuppressWarnings;
import java.util.List;
@bbejeck
bbejeck / backup_config.sh
Created December 7, 2011 04:32
Source for Simple WordPress backups Blog
#! /bin/sh
BLOG=blog_backup
BASE_DIR=/home/<username>/webapps/wp
USER=remote_username
PASS=database_password
DBUSER=database_user
DATABASE=database_name
DEST_DIR=destination_dir
IP_ADDRESS=blog_ip_address
@bbejeck
bbejeck / ListenableFuturesTest.java
Created November 23, 2011 04:25
Unit test/sample code for ListneableFutures blog
import com.google.common.util.concurrent.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.concurrent.Callable;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executors;