如何使用 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?