使用 Spark 从 CSV 文件中删除所有特殊字符



如何使用 Java Spark 从 Spark 数据帧中删除 CSV 文件中的所有特殊字符例如:下面是带有空格和特殊字符的csv文件内容

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

我需要的 o/p

UNITEDSTATESCELLULARCORPOKLAHOMA|WIRELESS|US Cellular( in lower case)

提前致谢

您应该使用 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);

参考:如何使用 JAVA 在 Spark 数据帧上调用 UDF?

相关内容

  • 没有找到相关文章

最新更新