2017-06-22 55 views
0

我有一個包含多行的文件。例如Sparklyr拆分字符串

A    B  C  
awer.ttp.net Code 554 
abcd.ttp.net Code 747 
asdf.ttp.net Part 554 
xyz.ttp.net  Part 747 

我想用sparklyr庫語句,分割表只列A作爲R火花作出命令,我想一個新行添加到表d,其值AWER,ABCD, asdf和xyz。

我已經試過

data_2 %>% sdf_mutate(node2=ft_regex_tokenizer(data_2, input.col = "A", output.col = "D", pattern="[.]")) %>% sdf_register("mutated") 

然後我嘗試的eval

mut_trial %>% mutate(E=D[[1]]) 

錯誤(表達式,ENVIR,enclos):對象 'D' 未找到。

我不知道我是否以正確的方式做這件事,但想看看是否有任何其他功能使用,或者如果有一種方法來解決這個功能做我想做的事情。

回答

0

的代碼是在斯卡拉火花希望你的想法,並將其轉換在SparkR

import spark.implicits._ 
val data = spark.sparkContext.parallelize(Seq(
    ("awer.ttp.net","Code", 554), 
    ("abcd.ttp.net","Code", 747), 
    ("asdf.ttp.net","Part", 554), 
    ("xyz.ttp.net","Part", 747) 
)).toDF("A","B","C") 

data.withColumn("D", split($"A", "\\.")(0)).show(false) 

輸出:

+------------+----+---+----+ 
|A   |B |C |D | 
+------------+----+---+----+ 
|awer.ttp.net|Code|554|awer| 
|abcd.ttp.net|Code|747|abcd| 
|asdf.ttp.net|Part|554|asdf| 
|xyz.ttp.net |Part|747|xyz | 
+------------+----+---+----+ 

希望這有助於!