【发布时间】:2020-03-09 22:47:48
【问题描述】:
我有以下数据:
17|ABC|3|89|89|0|0|2|
17|DFD|3|89|89|0|0|2|
17|RFG|3|89|89|0|0|2|
17|TRF|3|89|89|0|0|2|
当我使用以下代码时,我只得到 8 个元素而不是 9 个,因为最后一个不包含任何值。我不能使用 Dataframes,因为我的 csv 不是固定的,每一行都可以有不同数量的元素。即使是 Null/None,如何获取最后一列的值?
我当前的代码:
data_rdd.filter(x => x contains '|').map{line => line.split('|')}.foreach(elem => {
println("size of element ->" + elem.size)
elem.foreach{elem =>
println(elem)
}
})
【问题讨论】:
-
my csv is not fixed, it changes every line.你得到空值的sperator吗?或整列丢失。 -
没有分隔符,整列丢失但不应该返回空值什么的吗?
-
明白你的意思。您能否提供有关为什么需要最后一个值为 null 的更多信息?为什么不根据数组的长度跳过?
-
@VinayKV 我不能,因为每一行都有不同的长度。
标签: scala apache-spark split rdd