trait Row extends Serializable
Represents one row of output from a relational operator. Allows both generic access by ordinal, which will incur boxing overhead for primitives, as well as native primitive access.
It is invalid to use the native primitive interface to retrieve a value that is null, instead a
user must check isNullAt
before attempting to retrieve a value that might be null.
To create a new Row, use RowFactory.create()
in Java or Row.apply()
in Scala.
A Row object can be constructed by providing field values. Example:
import org.apache.spark.sql._ // Create a Row from values. Row(value1, value2, value3, ...) // Create a Row from a Seq of values. Row.fromSeq(Seq(value1, value2, ...))
A value of a row can be accessed through both generic access by ordinal, which will incur boxing overhead for primitives, as well as native primitive access. An example of generic access by ordinal:
import org.apache.spark.sql._ val row = Row(1, true, "a string", null) // row: Row = [1,true,a string,null] val firstValue = row(0) // firstValue: Any = 1 val fourthValue = row(3) // fourthValue: Any = null
For native primitive access, it is invalid to use the native primitive interface to retrieve
a value that is null, instead a user must check isNullAt
before attempting to retrieve a
value that might be null.
An example of native primitive access:
// using the row from the previous example. val firstValue = row.getInt(0) // firstValue: Int = 1 val isNull = row.isNullAt(3) // isNull: Boolean = true
In Scala, fields in a Row object can be extracted in a pattern match. Example:
import org.apache.spark.sql._ val pairs = sql("SELECT key, value FROM src").rdd.map { case Row(key: Int, value: String) => key -> value }
- Annotations
- @Stable()
- Source
- Row.scala
- Since
1.3.0
- Alphabetic
- By Inheritance
- Row
- Serializable
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
copy(): Row
Make a copy of the current Row object.
-
abstract
def
get(i: Int): Any
Returns the value at position i.
Returns the value at position i. If the value is null, null is returned. The following is a mapping between Spark SQL types and return types:
BooleanType -> java.lang.Boolean ByteType -> java.lang.Byte ShortType -> java.lang.Short IntegerType -> java.lang.Integer LongType -> java.lang.Long FloatType -> java.lang.Float DoubleType -> java.lang.Double StringType -> String DecimalType -> java.math.BigDecimal DateType -> java.sql.Date if spark.sql.datetime.java8API.enabled is false DateType -> java.time.LocalDate if spark.sql.datetime.java8API.enabled is true TimestampType -> java.sql.Timestamp if spark.sql.datetime.java8API.enabled is false TimestampType -> java.time.Instant if spark.sql.datetime.java8API.enabled is true BinaryType -> byte array ArrayType -> scala.collection.Seq (use getList for java.util.List) MapType -> scala.collection.Map (use getJavaMap for java.util.Map) StructType -> org.apache.spark.sql.Row
-
abstract
def
length: Int
Number of elements in the Row.
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
-
def
anyNull: Boolean
Returns true if there are any NULL values in this row.
-
def
apply(i: Int): Any
Returns the value at position i.
Returns the value at position i. If the value is null, null is returned. The following is a mapping between Spark SQL types and return types:
BooleanType -> java.lang.Boolean ByteType -> java.lang.Byte ShortType -> java.lang.Short IntegerType -> java.lang.Integer LongType -> java.lang.Long FloatType -> java.lang.Float DoubleType -> java.lang.Double StringType -> String DecimalType -> java.math.BigDecimal DateType -> java.sql.Date if spark.sql.datetime.java8API.enabled is false DateType -> java.time.LocalDate if spark.sql.datetime.java8API.enabled is true TimestampType -> java.sql.Timestamp if spark.sql.datetime.java8API.enabled is false TimestampType -> java.time.Instant if spark.sql.datetime.java8API.enabled is true BinaryType -> byte array ArrayType -> scala.collection.Seq (use getList for java.util.List) MapType -> scala.collection.Map (use getJavaMap for java.util.Map) StructType -> org.apache.spark.sql.Row
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(o: Any): Boolean
- Definition Classes
- Row → AnyRef → Any
-
def
fieldIndex(name: String): Int
Returns the index of a given field name.
Returns the index of a given field name.
- Exceptions thrown
IllegalArgumentException
when a fieldname
does not exist.UnsupportedOperationException
when schema is not defined.
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
getAs[T](fieldName: String): T
Returns the value of a given fieldName.
Returns the value of a given fieldName. For primitive types if value is null it returns 'zero value' specific for primitive i.e. 0 for Int - use isNullAt to ensure that value is not null
- Exceptions thrown
ClassCastException
when data type does not match.IllegalArgumentException
when fieldName do not exist.UnsupportedOperationException
when schema is not defined.
-
def
getAs[T](i: Int): T
Returns the value at position i.
Returns the value at position i. For primitive types if value is null it returns 'zero value' specific for primitive i.e. 0 for Int - use isNullAt to ensure that value is not null
- Exceptions thrown
ClassCastException
when data type does not match.
-
def
getBoolean(i: Int): Boolean
Returns the value at position i as a primitive boolean.
Returns the value at position i as a primitive boolean.
- Exceptions thrown
ClassCastException
when data type does not match.NullPointerException
when value is null.
-
def
getByte(i: Int): Byte
Returns the value at position i as a primitive byte.
Returns the value at position i as a primitive byte.
- Exceptions thrown
ClassCastException
when data type does not match.NullPointerException
when value is null.
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
getDate(i: Int): Date
Returns the value at position i of date type as java.sql.Date.
Returns the value at position i of date type as java.sql.Date.
- Exceptions thrown
ClassCastException
when data type does not match.
-
def
getDecimal(i: Int): BigDecimal
Returns the value at position i of decimal type as java.math.BigDecimal.
Returns the value at position i of decimal type as java.math.BigDecimal.
- Exceptions thrown
ClassCastException
when data type does not match.
-
def
getDouble(i: Int): Double
Returns the value at position i as a primitive double.
Returns the value at position i as a primitive double.
- Exceptions thrown
ClassCastException
when data type does not match.NullPointerException
when value is null.
-
def
getFloat(i: Int): Float
Returns the value at position i as a primitive float.
Returns the value at position i as a primitive float. Throws an exception if the type mismatches or if the value is null.
- Exceptions thrown
ClassCastException
when data type does not match.NullPointerException
when value is null.
-
def
getInstant(i: Int): Instant
Returns the value at position i of date type as java.time.Instant.
Returns the value at position i of date type as java.time.Instant.
- Exceptions thrown
ClassCastException
when data type does not match.
-
def
getInt(i: Int): Int
Returns the value at position i as a primitive int.
Returns the value at position i as a primitive int.
- Exceptions thrown
ClassCastException
when data type does not match.NullPointerException
when value is null.
-
def
getJavaMap[K, V](i: Int): Map[K, V]
Returns the value at position i of array type as a
java.util.Map
.Returns the value at position i of array type as a
java.util.Map
.- Exceptions thrown
ClassCastException
when data type does not match.
-
def
getList[T](i: Int): List[T]
Returns the value at position i of array type as
java.util.List
.Returns the value at position i of array type as
java.util.List
.- Exceptions thrown
ClassCastException
when data type does not match.
-
def
getLocalDate(i: Int): LocalDate
Returns the value at position i of date type as java.time.LocalDate.
Returns the value at position i of date type as java.time.LocalDate.
- Exceptions thrown
ClassCastException
when data type does not match.
-
def
getLong(i: Int): Long
Returns the value at position i as a primitive long.
Returns the value at position i as a primitive long.
- Exceptions thrown
ClassCastException
when data type does not match.NullPointerException
when value is null.
-
def
getMap[K, V](i: Int): Map[K, V]
Returns the value at position i of map type as a Scala Map.
Returns the value at position i of map type as a Scala Map.
- Exceptions thrown
ClassCastException
when data type does not match.
-
def
getSeq[T](i: Int): Seq[T]
Returns the value at position i of array type as a Scala Seq.
Returns the value at position i of array type as a Scala Seq.
- Exceptions thrown
ClassCastException
when data type does not match.
-
def
getShort(i: Int): Short
Returns the value at position i as a primitive short.
Returns the value at position i as a primitive short.
- Exceptions thrown
ClassCastException
when data type does not match.NullPointerException
when value is null.
-
def
getString(i: Int): String
Returns the value at position i as a String object.
Returns the value at position i as a String object.
- Exceptions thrown
ClassCastException
when data type does not match.
-
def
getStruct(i: Int): Row
Returns the value at position i of struct type as a Row object.
Returns the value at position i of struct type as a Row object.
- Exceptions thrown
ClassCastException
when data type does not match.
-
def
getTimestamp(i: Int): Timestamp
Returns the value at position i of date type as java.sql.Timestamp.
Returns the value at position i of date type as java.sql.Timestamp.
- Exceptions thrown
ClassCastException
when data type does not match.
-
def
getValuesMap[T](fieldNames: Seq[String]): Map[String, T]
Returns a Map consisting of names and values for the requested fieldNames For primitive types if value is null it returns 'zero value' specific for primitive i.e.
Returns a Map consisting of names and values for the requested fieldNames For primitive types if value is null it returns 'zero value' specific for primitive i.e. 0 for Int - use isNullAt to ensure that value is not null
- Exceptions thrown
ClassCastException
when data type does not match.IllegalArgumentException
when fieldName do not exist.UnsupportedOperationException
when schema is not defined.
-
def
hashCode(): Int
- Definition Classes
- Row → AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isNullAt(i: Int): Boolean
Checks whether the value at position i is null.
-
def
json: String
The compact JSON representation of this row.
The compact JSON representation of this row.
- Annotations
- @Unstable()
- Since
3.0
-
def
mkString(start: String, sep: String, end: String): String
Displays all elements of this traversable or iterator in a string using start, end, and separator strings.
-
def
mkString(sep: String): String
Displays all elements of this sequence in a string using a separator string.
-
def
mkString: String
Displays all elements of this sequence in a string (without a separator).
-
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()
-
def
prettyJson: String
The pretty (i.e.
The pretty (i.e. indented) JSON representation of this row.
- Annotations
- @Unstable()
- Since
3.0
-
def
schema: StructType
Schema for the row.
-
def
size: Int
Number of elements in the Row.
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toSeq: Seq[Any]
Return a Scala Seq representing the row.
Return a Scala Seq representing the row. Elements are placed in the same order in the Seq.
-
def
toString(): String
- Definition Classes
- Row → AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()