SparkyR将一个Spark数据框列分隔为两列

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) 有没有其他方法可以实现我想要的,但不收集火

我有一个数据框,其中包含一个名为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)

有没有其他方法可以实现我想要的,但不收集火花驱动程序上的所有信息

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")