【发布时间】:2020-06-14 15:22:00
【问题描述】:
问题
SparkR 的 regexp_replace 应该遵循 Java 正则表达式规则,但我很难识别某些符号。
Reprex
在此表示中,我设法识别“”或“+”。
# Load packages
library(tidyverse)
library(sparklyr)
library(SparkR)
# Create data
df <- data.frame(test = c("<5", ">5", "3(a)", "a-a", "b+b", "c/c", "d d", "3..3"))
# Transfer data to Spark memory
df <- copy_to(sc, df, "df", overwrite = TRUE)
# Modify data
df1 <- df %>%
dplyr::mutate(
test = regexp_replace(test, "[<]", "_"),
test = regexp_replace(test, "[>]", "_"),
test = regexp_replace(test, "[-]", "_"),
test = regexp_replace(test, "[+]", "_"),
test = regexp_replace(test, "[/]", "_"))
# Collect and print results
df2 <- df1 %>% as.data.frame()
df2
解决方案
# Load packages
library(tidyverse)
library(sparklyr)
library(SparkR)
# Create data
df <- data.frame(test = c("<5", ">5", "3(a)", "a-a", "b+b", "c/c", "d d", "3..3"))
# Transfer data to Spark memory
df <- copy_to(sc, df, "df", overwrite = TRUE)
# Modify data
df1 <- df %>%
dplyr::mutate(
test = regexp_replace(test, "[<>+/-]", "_"))
# Collect and print results
df2 <- df1 %>% as.data.frame()
df2
【问题讨论】:
-
test = regexp_replace(test, "[<>+/-]", "_")不工作吗? -
感谢@WiktorStribiżew 的贡献。这工作,非常感谢!奇怪,我记得我也试过这个......