首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将scala数组/列表中的空格替换为下划线和编码值

如何将scala数组/列表中的空格替换为下划线和编码值
EN

Stack Overflow用户
提问于 2020-07-15 00:43:49
回答 1查看 270关注 0票数 0

我有一个spark scala dataframe,它有列"Name“,我已经将该列的值提取到scala arraystring中

代码语言:javascript
运行
复制
org_name: Array[String] = Array(SARATOGA SENIOR HIGH SCHOOL)

我想用_替换空格,并将该值编码为utf-8 (只要用其他字符替换特殊字符,任何编码都可以),因此如果有任何特殊字符,这些字符将被删除。稍后,我想在文件路径中使用它们。

代码语言:javascript
运行
复制
var org_name = orgsFlatDF.rdd.collect
.map( _.getString(2))

这就是我提取这些字符的方法^^。我还没有找到任何可以用来做这件事的方法。Replace或Replace array在数组上无效

我试过这个:

代码语言:javascript
运行
复制
org_name.replace("\\s", "")

这不管用。

预期输出: SARATOGA_SENIOR_HIGH_SCHOOL

如果名称为:new $ high school,则应将其转换为new_$_high_school,然后编码为new_%24_high_school

EN

回答 1

Stack Overflow用户

发布于 2020-07-15 07:28:36

你所问的有几个问题。

Java/Scala数组没有replace方法。即使它们有一个replace方法,它们会替换它们持有的值或字符串中的字符吗?

让我们假设这一行org_name.replace("\\s", "")没有编译,而org_name确实是一个包含一个元素的ArrayString。

代码语言:javascript
运行
复制
scala> val org_name=Array("SARATOGA SENIOR HIGH SCHOOL")
val org_name: Array[String] = Array(SARATOGA SENIOR HIGH SCHOOL)
scala> org_name(0).replace(" ","_")
val res15: String = SARATOGA_SENIOR_HIGH_SCHOOL

replace("\\s","_")不能工作,因为它表示一个\s字符串。"\“表示\。这是定义包含其他转义代码(如\n\t )的字符串的唯一方法。

PS:要使用org_name.map(_.replace(" ","_"))转换数组中的所有字符串,这将返回另一个数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62899975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档