2017-01-23 8 views
0

に1つのスパークデータフレームの列を区切る:SparklyRが、私はこのように構成されて<strong>COL</strong>という名前の列を含むデータフレームを持つ2つの列

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

私が欲しいものを達成するための選択肢はありますか?

答えて

2

Sparklyrバージョン0.5は、ちょうどreleasedされている、それはそれを行うことができますft_regex_tokenizer()functionが含まれています

A regex based tokenizer that extracts tokens either by using the provided regex pattern to split the text (default) or repeatedly matching the regex (if gaps is false).

library(dplyr) 
library(sparklyr) 
ft_regex_tokenizer(input_DF, input.col = "COL", output.col = "ResultCols", pattern = '\\###') 

分割さ欄 "ResultCols" はリストになります。

+0

私は 'ft_regex_tokenizer'を知っていますが、問題は値を分離して1列目ではなく2列目に格納することでした。 'tidyr :: unnest'は' collect'の後にローカルで働いていますが、私の場合は適切ではありません。なぜなら、1つの出力カラムを使ってデータを集める必要があるからです。 – nachti

関連する問題