Packages

  • package root
    Definition Classes
    root
  • package ai
    Definition Classes
    root
  • package eto
    Definition Classes
    ai
  • package rikai
    Definition Classes
    eto
  • package sql

    Rikai SQL-ML extension.

    Rikai SQL-ML extension.

    Rikai offers DDL to manipulate ML Models:

    CREATE MODEL model_name
    [ OPTIONS (key=value, key=value, ...) ]
    [ AS "model_registry_uri" ]
    
    # List all registered models.
    SHOW MODELS
    
    # Describe the details of a model.
    (DESC | DESCRIBE) MODEL model_name
    
    # Drop a Model
    DROP MODEL model_name

    A ML_PREDICT function is implemented to run model inference.

    SELECT id, ML_PREDICT(model_name, col1, col2, col3) as predicted FROM table
    Definition Classes
    rikai
  • package spark
    Definition Classes
    sql
  • package execution
    Definition Classes
    spark
  • package expressions
    Definition Classes
    spark
  • package functions
    Definition Classes
    spark
  • Python
  • RikaiSparkSessionExtensions
  • SparkRunnable
t

ai.eto.rikai.sql.spark

SparkRunnable

trait SparkRunnable extends AnyRef

Make ai.eto.rikai.sql.model.Model runnable on Spark.

For a ML_PREDICT expression in Spark SQL,

SELECT ML_PREDICT(model_zoo, col1, col2, col3) FROM t1

It generates a LogicalPlan equivalent to

SELECT <Model{model_zoo}.asSpark(col1, col2, col3)> FROM t1
Example:
  1. To implement a ai.eto.rikai.sql.model.Model for RegistryFoo:

    class FooModel(name, uri) extends Model with SparkRunnable {
    
        /** Use a Spark UDF with the same name to run RegistryFoo's model */
       def asSpark(args: Seq[Expression]) : Expression = {
           UnresolvedFunction(
              new FunctionIdentifier(s"${name}"),
              arguments,
              isDistinct = false,
              Option.empty
           )
       }
Note

It is the ai.eto.rikai.sql.model.Registry's responsibility to implement a Model that runs with Spark SQL.

Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SparkRunnable
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract def asSpark(args: Seq[Expression]): Expression

    Convert a ai.eto.rikai.sql.model.Model to a Spark Expression in Spark SQL's logical plan.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  9. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  16. def toString(): String
    Definition Classes
    AnyRef → Any
  17. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  18. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  19. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from AnyRef

Inherited from Any

Ungrouped