apache-spark - 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 ?"
知道这怎么会发生吗?
解决方案
U+D83C 是高代理。它不能单独编码。
推荐阅读
- r - 自相关变量与年度时间步长的互相关
- docker - 无法使用 Docker 为 Golang 应用程序创建映像
- java - 使用矩形进行游戏碰撞检测
- c# - Windows 服务中的 SQL 注入?
- vba - 当一行中的 3 到 10 个最新值超过限制时,Excel 条件格式突出显示行
- apache-spark - 使用 Databricks 中的流调用每个元素的函数
- sql - 单个操作数的顺序是否会影响 SQL 表达式是否可搜索?
- dockerfile - 我们可以在 dockerfile 中使用 RUN cd /app 而不是使用 WORKDIR /app
- html - Bootstrap 4.0 卡片图像大小不一样
- android - 有没有办法为三星手机等浮动窗口创建应用程序