如何使用java spark从spark数据帧中删除csv文件中的所有特殊字符例如:以下是包含空格和特殊字符的csv文件内容
"UNITED STATES CELLULAR CORP. - OKLAHOMA",WIRELESS,"US Cellular"
o/p我需要
UNITEDSTATESCELLULARCORPOKLAHOMA|WIRELESS|US Cellular( in lower case)
提前感谢
您应该使用 String.replaceAll 方法(和正则表达式)将每个不是阿拉法数字的字符替换为空字符串。将其用作 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 DataFrame上调用UDF?
问题内容: 我想要一个RegExp,它将从字符串中删除所有特殊字符。我正在尝试类似的方法,但是它在IE7中不起作用,尽管它在Firefox中有效。 RegExp的详细说明也将有所帮助。 问题答案: 正如评论中提到的,将其作为白名单更容易-替换安全列表 中不 存在的字符。 脱字号()表示集合的取反,表示全局且不区分大小写(后者有点多余,但我想提一下),本例中的安全列表是数字,单词字符,下划线()和空
我试图从csv得到最小值,但是csv上的一些值给了我一个这是我使用的代码 当我运行这个方法时,我用try/catch将它四舍五入,但它仍然不是解决方案,我想替换或忽略所有特殊字符,这是给我错误的一行:
问题内容: 我面临网址问题,我希望能够转换标题,该标题可以包含任何内容,并去除所有特殊字符,因此它们仅包含字母和数字,当然我想用连字符替换空格。 怎么做?我听说过很多关于正则表达式(regex)的使用… 问题答案: 这应该可以满足您的需求: 用法: 将输出: 编辑: 嘿,只是一个简单的问题,如何防止多个连字符彼此相邻?并将它们替换为1?
我正在尝试接收表中的CSV文件,但在此之前,我需要根据头文件和尾文件进行一些验证。 样本数据 现在,在我将数据摄取到表中之前,我需要检查每个拖车记录的记录总数是否为5。 这就是我正在做的正确的事情。 我在想,如果有更好的方法来避免写回文件来创建第二个数据帧。我说的是第五步。 我想从列标题(文件的第二行)最后的数据帧与和?
问题内容: import java.util.Scanner; import java.util.regex.*; public class io{ public static void main(String args[]){ Scanner scan = new Scanner(System.in); String c; if((c=scan.nextLine())!=null) { Patt
如何从R中的字符串中删除所有特殊字符并用空格替换它们? 要删除的一些特殊字符是: