Apache spark translate和regexp\u replace之间的差异
Spark SQL中与函数的区别是什么 我想替换字符串、整数值和其他数据类型(如布尔值)中的子字符串 比如说Apache spark translate和regexp\u replace之间的差异,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,Spark SQL中与函数的区别是什么 我想替换字符串、整数值和其他数据类型(如布尔值)中的子字符串 比如说 func("hello","e","a") = "hallo" func(true,true ,false) = false func(112,112,9) = 9 func(112,115,9) = 112 我应该使用哪一种?每一种都有哪些优点/缺点?它们根本不是等价的: translate用于将一个字符表逐字翻译为另一个字符表。它不关心上下文,不使用正则表达式,只考虑手边的字符。
func("hello","e","a") = "hallo"
func(true,true ,false) = false
func(112,112,9) = 9
func(112,115,9) = 112
我应该使用哪一种?每一种都有哪些优点/缺点?它们根本不是等价的:
用于将一个字符表逐字翻译为另一个字符表。它不关心上下文,不使用正则表达式,只考虑手边的字符。根据您提供的示例,唯一适用的情况是单字母替换:translate
spark.sql(“选择翻译('hello','e','a'))”.show()
通常,+----------------------+ |翻译(你好,e,a)| +----------------------+ |哈罗| +----------------------+
用于处理无效字符和其他简单的清理任务。它编写简单,运行时开销小:translate
spark.sql("SELECT TRANSLATE('ed-ba', 'abcde', '12345')").show() +------------------------------+ |translate(ed-ba, abcde, 12345)| +------------------------------+ | 54-21| +------------------------------+
。这正是它所说的。您可以使用完整的Java regexp机器。如果您想替换字符串中的子字符串,这就是您要查找的子字符串regexp\u replace
- 无适用于替换整数值和其他数据类型,如布尔值。对于这种情况,
CASE。。。什么时候否则