Following are legal:
df.fillna(0, subset=['a', 'b'])
or
df.fillna( { 'a':0, 'b':0 } )
Question: Is df.fillna( { 'a':0, 'b':'2022-12-01' } ) where column a as is of float type, and b is of date type, allowed, as well?
Following are legal:
df.fillna(0, subset=['a', 'b'])
or
df.fillna( { 'a':0, 'b':0 } )
Question: Is df.fillna( { 'a':0, 'b':'2022-12-01' } ) where column a as is of float type, and b is of date type, allowed, as well?
Yes, according to documentation different data types are allowed but
the replacement value must be an int, float, boolean, or string.
Works for me
input schema
root
|-- A: double (nullable = true)
|-- D: date (nullable = true)
input df
+----+----------+
| A| D|
+----+----------+
| 0.0| null|
|null|2009-01-02|
| 2.0|2009-01-05|
| 3.0|2009-01-06|
| 4.0|2009-01-07|
| 0.0| null|
|null|2009-01-02|
| 2.0|2009-01-05|
| 3.0|2009-01-06|
| 4.0|2009-01-07|
+----+----------+
fillna
df=df.fillna({'A': 50, 'D': '2022-12-01'})
df.printSchema()
output schema
root
|-- A: double (nullable = false)
|-- D: date (nullable = true)
output df
+----+----------+
| A| D|
+----+----------+
| 0.0|2022-12-01|
|50.0|2009-01-02|
| 2.0|2009-01-05|
| 3.0|2009-01-06|
| 4.0|2009-01-07|
| 0.0|2022-12-01|
|50.0|2009-01-02|
| 2.0|2009-01-05|
| 3.0|2009-01-06|
| 4.0|2009-01-07|
+----+----------+