public interface Row
extends scala.Serializable
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
}
Modifier and Type | Method and Description |
---|---|
boolean |
anyNull()
Returns true if there are any NULL values in this row.
|
Object |
apply(int i)
Returns the value at position i.
|
Row |
copy()
Make a copy of the current
Row object. |
boolean |
equals(Object o) |
int |
fieldIndex(String name)
Returns the index of a given field name.
|
Object |
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 |
getAs(String fieldName)
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.
|
java.sql.Date |
getDate(int i)
Returns the value at position i of date type as java.sql.Date.
|
java.math.BigDecimal |
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.
|
java.time.Instant |
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> java.util.Map<K,V> |
getJavaMap(int i)
Returns the value at position i of array type as a
java.util.Map . |
<T> java.util.List<T> |
getList(int i)
Returns the value at position i of array type as
java.util.List . |
java.time.LocalDate |
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.
|
String |
getString(int i)
Returns the value at position i as a String object.
|
Row |
getStruct(int i)
Returns the value at position i of struct type as a
Row object. |
java.sql.Timestamp |
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.
|
int |
hashCode() |
boolean |
isNullAt(int i)
Checks whether the value at position i is null.
|
String |
json()
The compact JSON representation of this row.
|
org.json4s.JsonAST.JValue |
jsonValue()
JSON representation of the row.
|
int |
length()
Number of elements in the Row.
|
String |
mkString()
Displays all elements of this sequence in a string (without a separator).
|
String |
mkString(String sep)
Displays all elements of this sequence in a string using a separator string.
|
String |
mkString(String start,
String sep,
String end)
Displays all elements of this traversable or iterator in a string using
start, end, and separator strings.
|
String |
prettyJson()
The pretty (i.e.
|
StructType |
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.
|
String |
toString() |
int size()
int length()
StructType schema()
Object apply(int i)
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
i
- (undocumented)Object get(int i)
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
i
- (undocumented)boolean isNullAt(int i)
boolean getBoolean(int i)
i
- (undocumented)ClassCastException
- when data type does not match.NullPointerException
- when value is null.byte getByte(int i)
i
- (undocumented)ClassCastException
- when data type does not match.NullPointerException
- when value is null.short getShort(int i)
i
- (undocumented)ClassCastException
- when data type does not match.NullPointerException
- when value is null.int getInt(int i)
i
- (undocumented)ClassCastException
- when data type does not match.NullPointerException
- when value is null.long getLong(int i)
i
- (undocumented)ClassCastException
- when data type does not match.NullPointerException
- when value is null.float getFloat(int i)
i
- (undocumented)ClassCastException
- when data type does not match.NullPointerException
- when value is null.double getDouble(int i)
i
- (undocumented)ClassCastException
- when data type does not match.NullPointerException
- when value is null.String getString(int i)
i
- (undocumented)ClassCastException
- when data type does not match.java.math.BigDecimal getDecimal(int i)
i
- (undocumented)ClassCastException
- when data type does not match.java.sql.Date getDate(int i)
i
- (undocumented)ClassCastException
- when data type does not match.java.time.LocalDate getLocalDate(int i)
i
- (undocumented)ClassCastException
- when data type does not match.java.sql.Timestamp getTimestamp(int i)
i
- (undocumented)ClassCastException
- when data type does not match.java.time.Instant getInstant(int i)
i
- (undocumented)ClassCastException
- when data type does not match.<T> scala.collection.Seq<T> getSeq(int i)
i
- (undocumented)ClassCastException
- when data type does not match.<T> java.util.List<T> getList(int i)
java.util.List
.
i
- (undocumented)ClassCastException
- when data type does not match.<K,V> scala.collection.Map<K,V> getMap(int i)
i
- (undocumented)ClassCastException
- when data type does not match.<K,V> java.util.Map<K,V> getJavaMap(int i)
java.util.Map
.
i
- (undocumented)ClassCastException
- when data type does not match.Row getStruct(int i)
Row
object.
i
- (undocumented)ClassCastException
- when data type does not match.<T> T getAs(int i)
i
- (undocumented)ClassCastException
- when data type does not match.<T> T getAs(String fieldName)
fieldName
- (undocumented)UnsupportedOperationException
- when schema is not defined.IllegalArgumentException
- when fieldName do not exist.ClassCastException
- when data type does not match.int fieldIndex(String name)
name
- (undocumented)UnsupportedOperationException
- when schema is not defined.IllegalArgumentException
- when a field name
does not exist.<T> scala.collection.immutable.Map<String,T> getValuesMap(scala.collection.Seq<String> fieldNames)
fieldNames
- (undocumented)UnsupportedOperationException
- when schema is not defined.IllegalArgumentException
- when fieldName do not exist.ClassCastException
- when data type does not match.String toString()
toString
in class Object
boolean anyNull()
boolean equals(Object o)
equals
in class Object
int hashCode()
hashCode
in class Object
scala.collection.Seq<Object> toSeq()
String mkString()
String mkString(String sep)
String mkString(String start, String sep, String end)
start
- (undocumented)sep
- (undocumented)end
- (undocumented)<T> T getAnyValAs(int i)
i
- (undocumented)UnsupportedOperationException
- when schema is not defined.ClassCastException
- when data type does not match.NullPointerException
- when value is null.String json()
String prettyJson()
org.json4s.JsonAST.JValue jsonValue()
Note that this only supports the data types that are also supported by
RowEncoder
.