我目前正在使用scala中的数据框,如果该行中的值为Seq.empty[Row]
,则无法弄清楚如何填充null
值的列。我理解有df.na.fill
函数,但它似乎只处理我的理解中的字符串,双精度或整数。
基本上,我希望能够用Seq.empty[Row]
填充空行,用于嵌套字段。我确信这是可能的,但似乎我无法在网上找到类似的内容。
表示例 -
+-----------+-------------------+-----------+---------+------------------+
| field| field2| | values|
+-----------+-------------------+-----------+----------+------------------+
| stuff2| stuff 2| | null |
| stuff1| stuff1| | [val 1,val2,..]|
+-----------+-------------------+-----------+----------+------------------+
基本上,我希望null变成一个空数组,如下所示:[]
。任何帮助将不胜感激,谢谢。
答案 0 :(得分:3)
您可以使用coalesce
和val df = Seq(("stuff2","stuff2",null), ("stuff2","stuff2",Array("value1","value2")),("stuff3","stuff3",Array("value3"))).toDF("field","field2","values")
df.show()
import org.apache.spark.sql.functions.udf
val array_ = udf(() => Array.empty[String])
val df2 = df.withColumn("values", coalesce(df("values"), array_()))
df2.show()
执行此操作。
{{1}}