Вменение пустого значения в Spark с использованием Scala - PullRequest
1 голос
/ 09 июля 2019

Я пытаюсь вписать пустые значения с помощью 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 вместо пустых значений.

1 Ответ

1 голос
/ 11 июля 2019

Спасибо Шанкару за ваши усилия.Я мог бы вменять пропущенные значения после выполнения следующих шагов: - 1. Я загрузил CSV-файл в dataframe.2. После загрузки в фрейм данных пустые значения были заменены на нуль, поэтому я вменял нулевые значения, используя этот код:

val nullReplacer = udf((x: String) => { if (x == null) "N" else x })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...