Interface Row
- All Superinterfaces:
Serializable
,scala.Serializable
- All Known Implementing Classes:
MutableAggregationBuffer
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
}
- Since:
- 1.3.0
-
Method Summary
Modifier and TypeMethodDescriptionboolean
anyNull()
Returns true if there are any NULL values in this row.apply
(int i) Returns the value at position i.copy()
Make a copy of the currentRow
object.boolean
int
fieldIndex
(String name) Returns the index of a given field name.get
(int i) Returns the value at position i.<T> T
getAnyValAs
(int i) Returns the value at position i.<T> T
getAs
(int i) Returns the value at position i.<T> T
Returns the value of a given fieldName.boolean
getBoolean
(int i) Returns the value at position i as a primitive boolean.byte
getByte
(int i) Returns the value at position i as a primitive byte.getDate
(int i) Returns the value at position i of date type as java.sql.Date.getDecimal
(int i) Returns the value at position i of decimal type as java.math.BigDecimal.double
getDouble
(int i) Returns the value at position i as a primitive double.float
getFloat
(int i) Returns the value at position i as a primitive float.getInstant
(int i) Returns the value at position i of date type as java.time.Instant.int
getInt
(int i) Returns the value at position i as a primitive int.<K,
V> Map<K, V> getJavaMap
(int i) Returns the value at position i of array type as ajava.util.Map
.<T> List<T>
getList
(int i) Returns the value at position i of array type asjava.util.List
.getLocalDate
(int i) Returns the value at position i of date type as java.time.LocalDate.long
getLong
(int i) Returns the value at position i as a primitive long.<K,
V> scala.collection.Map<K, V> getMap
(int i) Returns the value at position i of map type as a Scala Map.<T> scala.collection.Seq<T>
getSeq
(int i) Returns the value at position i of array type as a Scala Seq.short
getShort
(int i) Returns the value at position i as a primitive short.getString
(int i) Returns the value at position i as a String object.getStruct
(int i) Returns the value at position i of struct type as aRow
object.getTimestamp
(int i) Returns the value at position i of date type as java.sql.Timestamp.<T> scala.collection.immutable.Map<String,
T> getValuesMap
(scala.collection.Seq<String> fieldNames) 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 nullint
hashCode()
boolean
isNullAt
(int i) Checks whether the value at position i is null.json()
The compact JSON representation of this row.org.json4s.JsonAST.JValue
JSON representation of the row.int
length()
Number of elements in the Row.mkString()
Displays all elements of this sequence in a string (without a separator).Displays all elements of this sequence in a string using a separator string.Displays all elements of this traversable or iterator in a string using start, end, and separator strings.The pretty (i.e. indented) JSON representation of this row.schema()
Schema for the row.int
size()
Number of elements in the Row.scala.collection.Seq<Object>
toSeq()
Return a Scala Seq representing the row.toString()
-
Method Details
-
size
int size()Number of elements in the Row. -
length
int length()Number of elements in the Row. -
schema
StructType schema()Schema for the row.- Returns:
- (undocumented)
-
apply
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
- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
-
get
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
- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
-
isNullAt
boolean isNullAt(int i) Checks whether the value at position i is null. -
getBoolean
boolean getBoolean(int i) Returns the value at position i as a primitive boolean.- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
- Throws:
ClassCastException
- when data type does not match.NullPointerException
- when value is null.
-
getByte
byte getByte(int i) Returns the value at position i as a primitive byte.- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
- Throws:
ClassCastException
- when data type does not match.NullPointerException
- when value is null.
-
getShort
short getShort(int i) Returns the value at position i as a primitive short.- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
- Throws:
ClassCastException
- when data type does not match.NullPointerException
- when value is null.
-
getInt
int getInt(int i) Returns the value at position i as a primitive int.- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
- Throws:
ClassCastException
- when data type does not match.NullPointerException
- when value is null.
-
getLong
long getLong(int i) Returns the value at position i as a primitive long.- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
- Throws:
ClassCastException
- when data type does not match.NullPointerException
- when value is null.
-
getFloat
float getFloat(int i) Returns the value at position i as a primitive float. Throws an exception if the type mismatches or if the value is null.- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
- Throws:
ClassCastException
- when data type does not match.NullPointerException
- when value is null.
-
getDouble
double getDouble(int i) Returns the value at position i as a primitive double.- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
- Throws:
ClassCastException
- when data type does not match.NullPointerException
- when value is null.
-
getString
Returns the value at position i as a String object.- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
- Throws:
ClassCastException
- when data type does not match.
-
getDecimal
Returns the value at position i of decimal type as java.math.BigDecimal.- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
- Throws:
ClassCastException
- when data type does not match.
-
getDate
Returns the value at position i of date type as java.sql.Date.- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
- Throws:
ClassCastException
- when data type does not match.
-
getLocalDate
Returns the value at position i of date type as java.time.LocalDate.- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
- Throws:
ClassCastException
- when data type does not match.
-
getTimestamp
Returns the value at position i of date type as java.sql.Timestamp.- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
- Throws:
ClassCastException
- when data type does not match.
-
getInstant
Returns the value at position i of date type as java.time.Instant.- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
- Throws:
ClassCastException
- when data type does not match.
-
getSeq
<T> scala.collection.Seq<T> getSeq(int i) Returns the value at position i of array type as a Scala Seq.- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
- Throws:
ClassCastException
- when data type does not match.
-
getList
Returns the value at position i of array type asjava.util.List
.- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
- Throws:
ClassCastException
- when data type does not match.
-
getMap
<K,V> scala.collection.Map<K,V> getMap(int i) Returns the value at position i of map type as a Scala Map.- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
- Throws:
ClassCastException
- when data type does not match.
-
getJavaMap
Returns the value at position i of array type as ajava.util.Map
.- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
- Throws:
ClassCastException
- when data type does not match.
-
getStruct
Returns the value at position i of struct type as aRow
object.- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
- Throws:
ClassCastException
- when data type does not match.
-
getAs
<T> T getAs(int 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- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
- Throws:
ClassCastException
- when data type does not match.
-
getAs
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- Parameters:
fieldName
- (undocumented)- Returns:
- (undocumented)
- Throws:
UnsupportedOperationException
- when schema is not defined.IllegalArgumentException
- when fieldName do not exist.ClassCastException
- when data type does not match.
-
fieldIndex
Returns the index of a given field name.- Parameters:
name
- (undocumented)- Returns:
- (undocumented)
- Throws:
UnsupportedOperationException
- when schema is not defined.IllegalArgumentException
- when a fieldname
does not exist.
-
getValuesMap
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- Parameters:
fieldNames
- (undocumented)- Returns:
- (undocumented)
- Throws:
UnsupportedOperationException
- when schema is not defined.IllegalArgumentException
- when fieldName do not exist.ClassCastException
- when data type does not match.
-
toString
String toString() -
copy
Row copy()Make a copy of the currentRow
object.- Returns:
- (undocumented)
-
anyNull
boolean anyNull()Returns true if there are any NULL values in this row. -
equals
-
hashCode
int hashCode() -
toSeq
scala.collection.Seq<Object> toSeq()Return a Scala Seq representing the row. Elements are placed in the same order in the Seq.- Returns:
- (undocumented)
-
mkString
String mkString()Displays all elements of this sequence in a string (without a separator). -
mkString
Displays all elements of this sequence in a string using a separator string. -
mkString
Displays all elements of this traversable or iterator in a string using start, end, and separator strings.- Parameters:
start
- (undocumented)sep
- (undocumented)end
- (undocumented)- Returns:
- (undocumented)
-
getAnyValAs
<T> T getAnyValAs(int i) Returns the value at position i.- Parameters:
i
- (undocumented)- Returns:
- (undocumented)
- Throws:
UnsupportedOperationException
- when schema is not defined.ClassCastException
- when data type does not match.NullPointerException
- when value is null.
-
json
String json()The compact JSON representation of this row.- Returns:
- (undocumented)
- Since:
- 3.0
-
prettyJson
String prettyJson()The pretty (i.e. indented) JSON representation of this row.- Returns:
- (undocumented)
- Since:
- 3.0
-
jsonValue
org.json4s.JsonAST.JValue jsonValue()JSON representation of the row.Note that this only supports the data types that are also supported by
RowEncoder
.- Returns:
- the JSON representation of the row.
-