您好我試圖插入元件RDD陣列[字符串]使用階火花。如何插入元件在火花RDD陣列
這裏是一個例子。
val data = RDD[Array[String]] = Array(Array(1,2,3), Array(1,2,3,4), Array(1,2)).
我想使這個數據中所有數組的長度爲4。
如果數組的長度小於4,I要填充的陣列中的NULL值。
這裏是我的代碼,我試圖解決的問題。
val newData = data.map(x =>
if(x.length < 4){
for(i <- x.length until 4){
x.union("NULL")
}
}
else{
x
}
)
但結果是Array[Any] = Array((), Array(1, 2, 3, 4),())
。
所以,我想其他辦法。我在for循環中使用了yield
。
val newData = data.map(x =>
if(x.length < 4){
for(i <- x.length until 4)yield{
x.union("NULL")
}
}
else{
x
}
)
結果是Array[Object] = Array(Vector(Array(1, 2, 3, N, U, L, L)), Array(1, 2, 3, 4), Vector(Array(1, 2, N, U, L, L), Array(1, 2, N, U, L, L)))
這些都不是我想要的。我想回到這樣
RDD[Array[String]] = Array(Array(1,2,3,NULL), Array(1,2,3,4), Array(1,2,NULL,NULL)).
我應該怎麼辦? 有沒有辦法解決它?
我很欣賞您的意見! 非常感謝! 我會試試! –