我有一个字符串“ $ urlhjkj”, 我希望将其“ $ url”部分替换为“ ssss” 尝试了以下操作,但不起作用:
spark.sql(s"""select regexp_replace("$$urlhjkj","$$url","ssss") """).first(){0}
我什至尝试:
spark.sql(s"""select regexp_replace("$$urlhjkj","\\u0024url","ssss") """).first(){0}
但这也不起作用。
我想念什么? 在配置单元中,以下内容可以完美工作:
select regexp_replace("$urlhjkj","\\u0024url","ssss")
答案 0 :(得分:0)
regex_replace函数中的第一个参数是一列。因此,您必须传递列名,而不是文字字符串。下面的代码可以在Spark中正常工作。
df.withColumn("test1", lit("$$urlhjkj"))
.withColumn("test", regexp_replace(col("test1"), "\\$\\$url", "ssss"))
下面是结果。
|test1 |test |
+---------+--------+
|$$urlhjkj|sssshjkj|
|$$urlhjkj|sssshjkj|
|$$urlhjkj|sssshjkj|
答案 1 :(得分:0)
regexp_replace(str,regexp,rep)-用rep替换所有与regexp匹配的str的子字符串。
Str应该是字符串类型的列。