我有一个数据框,我想遍历数据帧的每一行。数据框中有一些列具有三个引号的前导字符,表示它们被意外删除,并且需要全部成为一列的一部分。因此,我需要循环遍历数据框中的所有行,如果列具有前导字符,则需要将其连接到正确的列。
以下适用于单行并提供正确的结果:
val t = df.first.toSeq.toArray.toBuffer
while(t(5).toString.startsWith("\"\"\"")){
t(4) = t(4).toString.concat(t(5).toString)
t.remove(5)
}
然而,当我尝试浏览整个数据帧时,它会出错:
df.foreach(z =>
val t = z.toSeq.toArray.toBuffer
while(t(5).toString.startsWith("\"\"\"")){
t(4) = t(4).toString.concat(t(5).toString)
t.remove(5)
}
)
此错误消息出错:<console>:2: error: illegal start of simple expression
。
如何纠正此问题以使其正常工作?为什么这不正确?
谢谢!
编辑 - 示例数据(前面还有其他列):
+---+--------+----------+----------+---------+
|id | col4 | col5 | col6 | col7 |
+---+--------+----------+----------+---------+
| 1 | {blah} | service | null | null |
| 2 | { blah | """ blah | """blah} | service |
| 3 | { blah | """blah} | service | null |
+---+--------+----------+----------+---------+