1

我正在尝试通过 NA 估算空值,并且代码仅使用 Scala 可以正常工作,但是当我在 Spark 中运行代码时它无法正常工作

/* first way:- */
def blankImputation(input: String): String = {
    val pattern2 =  """(^.*?,,+.*$)""".r;
    if (pattern2.findFirstIn(input).contains(",,")) {
        return pattern2.replaceAllIn(input, ",NA,");
    }
    return input;
}

var cleaned_df = inputFile.map(blankImputation)


/* second way:- */
def blankImputation(input: String): String = {
    val pattern2 =  """(^.*?,,+.*$)""".r;
    if (input.isEmpty()) {
        return "NA";
    }
    return input;
}

var cleaned_df = inputFile.map(blankImputation)
cleaned_df.toDF().collect()

我期望 NA 而不是 Empty 值。

4

1 回答 1

1

感谢尚卡尔的努力。遵循以下步骤后,我可以估算缺失值:- 1. 我将 csv 文件加载到数据框中。2.加载到数据框后,空值被空值替换,所以我使用以下代码估算空值:

val nullReplacer = udf((x: String) => { if (x == null) "N" else x })
于 2019-07-11T11:57:58.800 回答