удалите все специальные символы из CSV-файла, используя спарк - PullRequest
0 голосов
/ 07 января 2019

как удалить все специальные символы из csv-файла из фрейма данных spark, используя java spark Например: ниже приводится содержимое файла csv с пробелами и специальными символами

"UNITED STATES CELLULAR CORP. - OKLAHOMA",WIRELESS,"US Cellular"

о / п мне нужно

UNITEDSTATESCELLULARCORPOKLAHOMA|WIRELESS|US Cellular( in lower case)

Заранее спасибо

1 Ответ

0 голосов
/ 07 января 2019

Вы должны использовать метод String.replaceAll (и регулярное выражение) для замены каждого символа, который не является числовым символом alapha, на пустую строку. Используйте это как udf и примените ко всем столбцам в фрейме данных.

Java-код должен выглядеть как

import org.apache.spark.sql.Column;
import static org.apache.spark.sql.functions.udf;
import org.apache.spark.sql.expressions.UserDefinedFunction;
import org.apache.spark.sql.types.DataTypes;

import java.util.Arrays;

UserDefinedFunction cleanUDF = udf(
  (String strVal) -> strVal.replaceAll("[^a-zA-Z0-9]", ""), DataTypes.StringType
);

Column newColsLst[] = Arrays.stream(df.columns())
    .map(c -> cleanUDF.apply(new Column(c)).alias(c) )
    .toArray(Column[]::new);

Dataset<Row> new_df = df.select(newColsLst);

Ссылка: Как вызвать UDF в кадре данных Spark с использованием JAVA?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...