当指定的字符串包含时。性格,结果会是错误的。请记住,第一行代码列的数据类型是字符串。下面的两个语句总是显示相同的结果。
newData
.withColumn("c",rtrim($"first_specific_businessn_line_code",".0"))
.show(false)
newData
.withColumn("c",rtrim($"first_specific_businessn_line_code","\\.0"))
.show(false)
+----------------------------------+---+
|first_specific_businessn_line_code|c |
+----------------------------------+---+
|8.0 |8 |
|80.0 |8 |
+----------------------------------+---+
2条答案
按热度按时间o8x7eapl1#
那不是虫子。rtrim将删除我们指定的字符。
请检查此链接:rtrim函数
rtrim(80.0,“.0”)-->这将删除。列值的尾端为0。所以结果是8
您可以使用regexp\u replace/regexp\u extract来获得结果。
vs3odd8k2#
你可以用
regexp_replace
替换.0
出现在结尾($
在正则表达式中):