Observation

org.apache.spark.sql.Observation
See theObservation companion object
class Observation(val name: String)

Helper class to simplify usage of Dataset.observe(String, Column, Column*):

 // Observe row count (rows) and highest id (maxid) in the Dataset while writing it
 val observation = Observation("my metrics")
 val observed_ds = ds.observe(observation, count(lit(1)).as("rows"), max($"id").as("maxid"))
 observed_ds.write.parquet("ds.parquet")
 val metrics = observation.get

This collects the metrics while the first action is executed on the observed dataset. Subsequent actions do not modify the metrics returned by get. Retrieval of the metric via get blocks until the first action has finished and metrics become available. If collecting the metrics failed on the server (Spark 4.2+ reports such failures), get throws that error.

An Observation can be attached to only one Dataset. Mirrors org.apache.spark.sql.Observation.

Value parameters

name

name of the metric

Attributes

Companion
object
Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Value members

Constructors

def this()

Create an Observation instance without providing a name. This generates a random name.

Create an Observation instance without providing a name. This generates a random name.

Attributes

Concrete methods

def get: Map[String, Any]

(Scala-specific) Get the observed metrics. This waits for the observed dataset to finish its first action. Only the result of the first action is available. Subsequent actions do not modify the result.

(Scala-specific) Get the observed metrics. This waits for the observed dataset to finish its first action. Only the result of the first action is available. Subsequent actions do not modify the result.

Attributes

Returns

the observed metrics as a Map[String, Any]

def getAsJava: Map[String, Any]

(Java-specific) Get the observed metrics. This waits for the observed dataset to finish its first action. Only the result of the first action is available. Subsequent actions do not modify the result.

(Java-specific) Get the observed metrics. This waits for the observed dataset to finish its first action. Only the result of the first action is available. Subsequent actions do not modify the result.

Attributes

Concrete fields

val future: Future[Row]

Future holding the (yet to be completed) observation.

Future holding the (yet to be completed) observation.

Attributes

val name: String