在许多行上爆炸数据集列无法循环工作

时间:2019-04-17 10:58:56

标签: java apache-spark dataset explode

我试图在Java Spark Job上爆炸多行中的一列。 当我仅对一列进行爆炸时,效果很好,但是如果我尝试对所有列进行循环以进行爆炸,则它不起作用。

这是我的代码:

不起作用:

    for (String column : columns) {
        tableDS = tableDS .withColumn(column, explode(split(column(column), "\\|")));
    }

没有例外。它仅返回没有内容要拆分的唯一行(空列值)。

仅在给定的列上有效:

    for (String column : columns) {
        tableDS = tableDS .withColumn("column1", explode(split(column("column1"), "\\|")));
    }

您知道为什么它不起作用吗?

1 个答案:

答案 0 :(得分:0)

我发现了问题所在。实际上,当爆炸处理具有空值的列时,拆分将失败,但不会引发任何异常。因此具有空列的行将被丢弃。