我想在hive中使用regex\u replace或regexp\u extract,在这里我只能获得特殊字符“^”的前n个匹配项,除了最后一个匹配项和最后一个匹配项之后的文本。例如: 101^11 应该提取101 101^1111^232 应该提取101^1111 144^899^890^1 应该提取 1144^899^890 我只能处理regex,不能处理字符串函数或udf。
101^11
101^1111^232
144^899^890^1
1144^899^890
fwzugrvs1#
尝试使用regexp\u提取函数在Hive中:
hive> select regexp_extract('101^11',"(.*)\\^",1) +------+--+ | _c0 | +------+--+ | 101 | +------+--+
在scala中:
scala> val hiveContext = new HiveContext(sc) scala> val df= hiveContext.sql("""select regexp_extract('101^11','(.*)\\\^',1)"""); scala> df.show() +---+ |_c0| +---+ |101| +---+
在Pypark中:
>>> hiveContext=HiveContext(sc) >>> df=hiveContext.sql("select regexp_extract('101^11','(.*)\\\^',1)") >>> df.show() +---+ |_c0| +---+ |101| +---+
1条答案
按热度按时间fwzugrvs1#
尝试使用regexp\u提取函数
在Hive中:
在scala中:
在Pypark中: