如何在url中提取子字符串并为其创建新列?

xt0899hw  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(215)

在scala dataframe中,假设其中一列是url字符串,格式如下:https://www.x.com/x/x/x/o-5+t-1858+d-8011 或者https://www.x.com/x/x/x/t-1858+d-8011,提取“t-”之后的信息(在本例中为“1858”)并为此数据创建新列的最佳方法是什么?

col17t5w

col17t5w1#

基于上述url数据,您可以使用以下正则表达式并提取值“1858”(假设始终提取一个数字):

val urlDataRegex = "http.*t-(\\d++).*".r

例如,如果您持有一个示例url数据:

val sampleData = "https://www.xxxx.com/xxxx/xxxx/xxxx/o-5+t-1858+d-8011"

通过使用正则表达式,可以提取数字并将其赋给变量,如下所示:

val urlDataRegex(urlData) = sampleData

变量“urldata”的值为“1858”。如果由于任何原因,数据与预期不符,则会引发matcherror异常。

相关问题