我正在尝试将下面的rdd行拆分为五列
val test = [hello,one,,,]
val rddTest = test.rdd
val Content = rddTest.map(_.toString().replace("[", "").replace("]", ""))
.map(_.split(","))
.map(e ⇒ Row(e(0), e(1), e(2), e(3), e(4), e(5)))
当我执行时,我得到“java.lang.arrayindexoutofboundsexception”,因为在最后三个逗号之间没有值。
现在有没有关于如何分割数据的想法?
2条答案
按热度按时间r55awzrz1#
太脏了,但换了好几次。
yptwkmov2#
您的代码是正确的,但是在拆分之后,您尝试访问6个元素而不是5个元素。
改变
到
更新
默认情况下,执行字符串拆分时会忽略空值。这就是为什么你的数组只有2个元素。要实现您的目标,请尝试以下方法:
观察split函数,以这种方式使用它将确保保留所有字段。