首页 > 解决方案 > Spark 不保留 **some** unicode 字符的编码

问题描述

似乎某些unicode字符的编码在被spark序列化时没有保留。

一个例子:

val str ="string with unicodes \u202F and \uD83C"
val range = "[\u202F\uD800-\uDB7F]+"
str.replaceAll(range, "gotcha!") // "string with unicodes gotcha! and gotcha!"

但是在将此字符串包装在字符串数据集中后做同样的事情

val ds = Seq(str).toDS()
ds.map(s => s.replaceAll(range, "gotcha!")).first // "string with unicodes gotcha! and ?"

知道这怎么会发生吗?

标签: apache-sparkunicode

解决方案


U+D83C 是高代理。它不能单独编码。


推荐阅读