SparkyR将一个Spark数据框列分隔为两列
我有一个数据框,其中包含一个名为COL的列,其结构如下: 值1###值2 下面的代码正在运行SparkyR将一个Spark数据框列分隔为两列,r,dplyr,tidyr,sparklyr,R,Dplyr,Tidyr,Sparklyr,我有一个数据框,其中包含一个名为COL的列,其结构如下: 值1###值2 下面的代码正在运行 library(sparklyr) library(tidyr) library(dplyr) mParams<- collect(filter(input_DF, TYPE == ('MIN'))) mParams<- separate(mParams, COL, c('col1','col2'), '\\###', remove=FALSE) 有没有其他方法可以实现我想要的,但不收集火
library(sparklyr)
library(tidyr)
library(dplyr)
mParams<- collect(filter(input_DF, TYPE == ('MIN')))
mParams<- separate(mParams, COL, c('col1','col2'), '\\###', remove=FALSE)
有没有其他方法可以实现我想要的,但不收集火花驱动程序上的所有信息 Sparkyr版本0.5刚刚发布,它包含可实现此功能的
ft\u regex\u标记器()
:
一种基于正则表达式的标记器,通过使用
提供了用于拆分文本(默认)或重复拆分文本的正则表达式模式
匹配正则表达式(如果间隙为false)
拆分的列“ResultCols”将是一个列表。您可以使用ft\u regex\u标记器,后跟sdf\u分离列 ft_regex_标记器将基于正则表达式将列拆分为向量类型。sdf_separate_列将此拆分为多个列
mydf %>%
ft_regex_tokenizer(input_col="mycolumn", output_col="mycolumnSplit", pattern=";") %>%
sdf_separate_column("mycolumnSplit", into=c("column1", "column2")
更新:在Sparkyr的最新版本中,参数input.col和output.col分别被重命名为input_col和output_col。我知道
ft_regex_标记器
,但问题是将值分开并存储在两列中,而不是存储在一列中tidyr::unnest
只是在collect
之后在本地工作,这在我的情况下不合适,因为我必须使用1个输出列来聚合数据…注意:在Sparkyr的最新版本中,参数input.col和output.col已重命名为input_col和output_col,分别。我建议编辑答案以显示输入和输出,因为这是当前的实现。
library(dplyr)
library(sparklyr)
ft_regex_tokenizer(input_DF, input_col = "COL", output_col = "ResultCols", pattern = '\\###')
mydf %>%
ft_regex_tokenizer(input_col="mycolumn", output_col="mycolumnSplit", pattern=";") %>%
sdf_separate_column("mycolumnSplit", into=c("column1", "column2")