Share via


Row class

A row in DataFrame. The fields in it can be accessed:

  • like attributes (row.key)
  • like dictionary values (row[key])

key in row will search through row keys.

Row can be used to create a row object by using named arguments. It is not allowed to omit a named argument to represent that the value is None or missing. This should be explicitly set to None in this case.

Changed in Databricks Runtime 7.4: Rows created from named arguments no longer have field names sorted alphabetically and will be ordered in the position as entered.

Syntax

from pyspark.sql import Row

Row(tuple)

Parameters

Parameter Type Description
tuple tuple The row elements

Methods

Method Description
asDict(recursive) Returns the Row as Dict[str, Any].

Examples

Using named arguments

from pyspark.sql import Row
row = Row(name="Alice", age=11)
row
# Row(name='Alice', age=11)
row['name'], row['age']
# ('Alice', 11)
row.name, row.age
# ('Alice', 11)
'name' in row
# True
'wrong_key' in row
# False

Creating Row classes

Row can also be used to create another Row-like class, then it could be used to create Row objects:

Person = Row("name", "age")
Person
# <Row('name', 'age')>
'name' in Person
# True
'wrong_key' in Person
# False
Person("Alice", 11)
# Row(name='Alice', age=11)

This form can also be used to create rows as tuple values, with unnamed fields:

row1 = Row("Alice", 11)
row2 = Row(name="Alice", age=11)
row1 == row2
# True