Skip to content

Instantly share code, notes, and snippets.

View ndolgov's full-sized avatar

Nikita Dolgov ndolgov

View GitHub Profile
@ndolgov
ndolgov / CompletableFutureSaga.java
Last active August 14, 2018 06:43
Composing a saga from individual transactions in Scala
interface ObjectStoreTx {
CompletableFuture<Void> execute(TxContext ctx);
Optional<Throwable> rollback();
}
public final class CompletableFutureSaga {
private CompletableFuture<TxContext> executeHeadTx(Iterator<ObjectStoreTx> txs, TxContext ctx) {
if (!txs.hasNext()) {
return CompletableFuture.completedFuture(ctx);
@ndolgov
ndolgov / SparkDriver.java
Last active November 25, 2021 10:27
Running SparkSQL in standalone mode
import org.apache.spark.sql.SparkSession;
public class SparkDriver {
public static void main(String[] args) {
final SparkSession session = SparkSession.builder().
appName("MySparkApp" + System.currentTimeMillis()).
master(SparkEnvCfg.sparkMasterUrl()).
config(SparkEnvCfg.SPARK_EXECUTOR_MEMORY, "1g").
config(SparkEnvCfg.SPARK_SERIALIZER, SparkEnvCfg.KRYO).
config(SparkEnvCfg.SPARK_SQL_SHUFFLE_PARTITIONS, "2").
@ndolgov
ndolgov / gist:886d4f1b53abb15a70ad
Created July 1, 2015 03:04
A local Parquet file to SparkSQL cache
public void readAndCache(SQLContext sqlCtx, File file) {
final DataFrame df = sqlCtx.read().parquet("file://" + file.getAbsolutePath())
sqlCtx.registerDataFrameAsTable(df, name);
sqlCtx.cacheTable(name); // != df.persist(StorageLevel.MEMORY_ONLY_SER()) when reading from a Parquet file
final long rowCount = df.count(); // warm-up cache
}