如何解决如何在 Spark-scala 中解码 HTML 实体?
我有一个火花代码可以从数据库中读取一些数据。 名为“title”的列(字符串类型)之一包含以下数据。
+-------------------------------------------------+
|title |
+-------------------------------------------------+
|Example sentence |
|Read the ‘Book’ |
|‘LOTR’ Is A Great Book |
+-------------------------------------------------+
我想删除 HTML 实体并将其解码为如下所示。
+-------------------------------------------+
|title |
+-------------------------------------------+
|Example sentence |
|Read the ‘Book’ |
|‘LOTR’ Is A Great Book |
+-------------------------------------------+
node.js 有一个库“html-enitites”,它完全符合我的要求, 但我无法为 spark-scala 找到类似的东西。
这样做的好方法是什么?
解决方法
您可以在 UDF 的帮助下使用 org.apache.commons.lang.StringEscapeUtils
来实现这一点。
import org.apache.commons.lang.StringEscapeUtils;
val decodeHtml = (html:String) => {
StringEscapeUtils.unescapeHtml(html);
}
val decodeHtmlUDF = udf(decodeHtml)
df.withColumn("title",decodeHtmlUDF($"title")).show()
/*
+--------------------+
| title|
+--------------------+
| Example sentence |
| Read the ‘Book’ |
|‘LOTR’ Is A Great...|
+--------------------+
*/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。