我有一个数据框,其中包含名为COL的列,其结构如下:
VALUE1 ### VALUE2
以下代码正在工作
library(sparklyr)
library(tidyr)
library(dplyr)
mParams<- collect(filter(input_DF, TYPE == ('MIN')))
mParams<- separate(mParams, COL, c('col1','col2'), '\\###', remove=FALSE)
如果删除
collect
,则会出现此错误:Error in UseMethod("separate_") :
no applicable method for 'separate_' applied to an object of class "c('tbl_spark', 'tbl_sql', 'tbl_lazy', 'tbl')"
是否有其他选择可以实现我想要的,但又不收集火花驱动程序上的所有内容?
最佳答案
您可以先使用ft_regex_tokenizer,再使用sdf_separate_column。
ft_regex_tokenizer将基于正则表达式将一列拆分为向量类型。 sdf_separate_column会将其分成多列。
mydf %>%
ft_regex_tokenizer(input_col="mycolumn", output_col="mycolumnSplit", pattern=";") %>%
sdf_separate_column("mycolumnSplit", into=c("column1", "column2")
更新:在最新版本的sparklyr中,参数input.col和output.col已分别重命名为input_col和output_col。
关于r - SparklyR将一个Spark DataFrame列分为两列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41810015/