我是Spark Scala的新手。如果有人可以在这里帮助我,我将不胜感激。我有一个名为df的数据框。
df.printSchema()
root
|-- tab: string (nullable = true)
|-- cust: string (nullable = true)
|-- date: string (nullable = true)
|-- uniqIds: string (nullable = true)
df.show()
+-------+----+----------+--------------------+
| tab|cust| date| uniqIds|
+-------+----+----------+--------------------+
|t_users| abc|2018050918|[123, 1234, 22123] |
|t_users| def|2018050918|[1sdf23, 12f34] |
+-------+----+----------+--------------------+
现在,我想遍历每条记录并进行一些处理,即从前三列开始另一个函数/过程。如果该过程成功。然后,我想将uniqIds列中的所有值存储到df中。获得成功过程的所有uniqId之后,将它们写入文件中。
var uq = Seq((lit(e))).toDF("unique_id)
df.foreach { row =>
val uniqIds: Array[String] = row(3).toString.replace("[", "").replace("]", "").replace(" ","").split(",")
uniqIds.foreach { e=>
var df2 = Seq((lit(e))).toDF("unique_id)
uq.union(df2)
}
但是当我尝试这样做时,我收到一条错误消息
错误执行程序:91-阶段11.0(TID 23)中的任务1.0发生异常 java.lang.NullPointerException
有人有同样的问题吗?我该如何克服这个问题。预先感谢。