【发布时间】:2016-06-23 16:08:49
【问题描述】:
使用正则表达式,我想用这个字符的一次出现替换 2 个或多个连续的相同字符。 例如:eeee => e
我想通过 regexp_replace 函数在 hive 中实现。
我试过了:
regexp_replace("aaeebb", "(.)\\1{1,}", "\\1")
使用 gsub R 函数但不使用 regexp_replace
【问题讨论】:
标签: sql regex apache-spark hive
使用正则表达式,我想用这个字符的一次出现替换 2 个或多个连续的相同字符。 例如:eeee => e
我想通过 regexp_replace 函数在 hive 中实现。
我试过了:
regexp_replace("aaeebb", "(.)\\1{1,}", "\\1")
使用 gsub R 函数但不使用 regexp_replace
【问题讨论】:
标签: sql regex apache-spark hive
斯卡拉:
原始 SQL
sqlContext.sql("""SELECT regexp_replace('aaeebb', '(.)\\1+', '$1')""")
DSL
df.select(regexp_replace(lit("aaeebb"), "(.)\\1+", "$1"))
PySpark:
原始 SQL
sqlContext.sql("""SELECT regexp_replace('aaeebb', '(.)\\\\1+', '$1')""")
# or
sqlContext.sql(r"""SELECT regexp_replace('aaeebb', '(.)\\1+', '$1')""").show()
DSL
df.select(regexp_replace(lit("aaeebb"), "(.)\\1+", "$1"))
Spark SQL 外壳:
SELECT regexp_replace('aaeebb', '(.)\\1+', '$1');
蜂巢壳:
SELECT regexp_replace('aaeebb', '(.)\\1+', '$1');
【讨论】: