Skip to content

Le-Dai/spark-expression

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

spark-expression

基于spark 使用janino实现动态字节码生成 动态函数调用

val conf = new SparkConf()
conf.set("spark.master",conf.get("spark.master","local[*]"))
/** ***************************************************************************************************************
 * sparksession
 */
val spark = SparkSession
  .builder()
  .config(conf)
  .config("spark.sql.crossJoin.enabled","true")
  .config(StaticSQLConf.CATALOG_IMPLEMENTATION.key, "in-memory")
  //    .enableHiveSupport()
  .appName(this.getClass.getName)
  .config("spark.sql.shuffle.partitions", "5")
  .getOrCreate()
import spark.implicits._

val random = new java.util.Random()
val frame: DataFrame = spark.sparkContext.parallelize(1 to 100000, 50).map(i => {
  (i, "name", random.nextInt(100))
}).toDF("id", "name", "age")

val code =
  """
    |public String process(String a,int b){
    |   return a + " age is :" + b;
    |}
    |
    |""".stripMargin

frame.select(ssfunctions.codeInvoke(code, "process", frame.col("name").expr, frame.col("age").expr).as("alias")).show()

About

基于spark 实现动态字节码生成 动态函数调用

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages