Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 分解多行上的数据集列在循环中不起作用_Java_Apache Spark_Dataset_Explode - Fatal编程技术网

Java 分解多行上的数据集列在循环中不起作用

Java 分解多行上的数据集列在循环中不起作用,java,apache-spark,dataset,explode,Java,Apache Spark,Dataset,Explode,我试图在Java Spark作业中分解多行中的一列。 当我只在一列上进行分解时,效果很好,但如果我尝试在所有列上循环进行分解,则效果不好 这是我的密码: 不起作用: for (String column : columns) { tableDS = tableDS .withColumn(column, explode(split(column(column), "\\|"))); } 没有例外。它只返回没有要拆分的内容的唯一一行空列值 仅适用于给定列:

我试图在Java Spark作业中分解多行中的一列。 当我只在一列上进行分解时,效果很好,但如果我尝试在所有列上循环进行分解,则效果不好

这是我的密码: 不起作用:

    for (String column : columns) {
        tableDS = tableDS .withColumn(column, explode(split(column(column), "\\|")));
    }
没有例外。它只返回没有要拆分的内容的唯一一行空列值

仅适用于给定列:

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

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

我发现了问题所在。事实上,当分解处理具有空值的列时,分割将失败,但不会引发异常。因此,包含空列的行将被丢弃。

您可能应该解释它是如何不工作的:错误、异常、只是什么都不做,等等。没有异常。结果只是最后一行,没有要拆分的列内容。问题编辑一致我发现了问题所在。事实上,当分解处理具有空值的列时,分割将失败,但不会引发异常。因此,具有空列的行将被丢弃。