提取属性标签规则

Posted chbxw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了提取属性标签规则相关的知识,希望对你有一定的参考价值。

文章目录

查看【业务标签说明】可以发现很多【属性标签规则】都是 值的范围 ,在计算标签时需要依据规则范围进行比较,获取对应标签名称(tagName),给每个用户打上标签,所以可以编写方法【提取属性标签中规则rule,转换类型,返回DataFrame数据集】,其中包含字段:tag,start,end

在这里插入图片描述

在标签工具类 TagTools 中添加方法 convertTuple ,实现属性标签规则的转换,具体代码如下:

/**
* 将标签数据中属性标签规则rule拆分为范围: start, end
*
* @param tagDF 标签数据
* @return 数据集DataFrame
*/
def convertTuple(tagDF: DataFrame): DataFrame = {
// 导入隐式转换和函数库
import tagDF.sparkSession.implicits._
import org.apache.spark.sql.functions._
// 1. 自定UDF函数,解析分解属性标签的规则rule: 19500101-19591231
val rule_to_tuple: UserDefinedFunction = udf(
(rule: String) => {
val Array(start, end) = rule.split("-").map(_.toInt)
// 返回二元组
(start, end)
}
)
// 2. 获取属性标签数据,解析规则rule
val ruleDF: DataFrame = tagDF
.filter($"level" === 5) // 5级标签
.select(
$"name", //
rule_to_tuple($"rule").as("rules") //
)
// 获取起始start和结束end
.select(
$"name", //
$"rules._1".as("start"), //
$"rules._2".as("end") //
)
//ruleDF.show(20, truncate = false)
// 3. 返回标签规则
ruleDF
}

以上是关于提取属性标签规则的主要内容,如果未能解决你的问题,请参考以下文章

从值标签Etree XML python中提取文本

htmlhint 规则详解

C#怎么用正则表达式提取链接和图片标签的属性

从 HTML 正文中提取文本片段(在 .NET 中)

requests模块-数据解析

Android课程---Android Studio使用小技巧:提取方法代码片段