001package org.kepler.spark.actor; 002 003import org.apache.spark.sql.SQLContext; 004 005import ptolemy.kernel.CompositeEntity; 006import ptolemy.kernel.util.IllegalActionException; 007import ptolemy.kernel.util.NameDuplicationException; 008 009/* 010 * Author: Dylan Uys 011 * Class to be extended by all actors requiring a SQLContext 012 */ 013public abstract class SparkSQLActor extends SparkBaseActor { 014 015 public SparkSQLActor(CompositeEntity container, String name) 016 throws IllegalActionException, NameDuplicationException { 017 super(container, name); 018 } 019 020 021 @Override 022 public void preinitialize() throws IllegalActionException { 023 024 super.preinitialize(); 025 026 if (null != _context) { 027 // initialize a SQLContext with the JavaSparkContext that was initialized 028 // in SparkBaseActor's preinitialize() 029 _sqlContext = new org.apache.spark.sql.SQLContext(_context); 030 } else { 031 // throw an excpetion if SparkBaseActor failed to create a JavaSparkContext 032 throw new IllegalActionException(this, "No SparkContext to create a SQLContext with"); 033 } 034 035 } 036 037 protected SQLContext _sqlContext; 038 039}