trait MetaUtils extends Serializable with WithHelpMethods
MetaUtils provides utilities for working with source and class files directly.
- Alphabetic
- By Inheritance
- MetaUtils
- WithHelpMethods
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def define(packageName: String, code: String): Boolean
Compiles a class or object within the given package.
Compiles a class or object within the given package. Multiple class/object definitions may appear within the same code block, though one-per-method call is recommended.
Example:
define("org.apache.spark", """ |import java.io.File |case class MyDataClass(num: Int, location: File) """.stripMargin) val data = sc.parallelize(0 until 10).map { i => org.apache.spark.MyDataClass(i, new java.io.File("file" + i)) }.collect() data.map(_._location).foreach(println)
It is not legal to redefine a class or object after using it. An error will not be immediately thrown, but the class is no longer valid for use. The behavior of redefining a class before using it is undefined. It is legal to redefine a class if it was never compiled successfully.
Classes defined by this method are available on a per-cluster basis, meaning that they will be accessible by any notebook running on this cluster. Additionally, the pitfalls regarding redefinition also apply on a per-cluster basis.
Two convenience features are provided to help using this method:
- Calling this method with the exact same package/code Strings will not cause the compiler to be invoked twice. The result of the original compilation will be returned instead.
- If the provided code already includes the expected package declaration, it will be stripped out. If the package declaration does not correspond exactly to the given packageName, an exception will be thrown instead to prevent accidental nesting.
- packageName
Package in which to compile the code.
- code
String of text to be compiled, similar to what would run in a notebook.
- returns
True if the code was compiled successfully.
- abstract def help(moduleOrMethod: String): Unit
- Definition Classes
- WithHelpMethods
- abstract def help(): Unit
- Definition Classes
- WithHelpMethods
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def apply(): MetaUtils.this.type
- Definition Classes
- WithHelpMethods
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()