我有一个包含多行的文件。例如
A B C
awer.ttp.net Code 554
abcd.ttp.net Code 747
asdf.ttp.net Part 554
xyz.ttp.net Part 747
我想在R中使用sparklyr库使用语句在spark中创建一个命令来分割表的A列,我希望在表D中添加一个新行,其值为awer,abcd,asdf和xyz。 / p>
我试过了
data_2 %>% sdf_mutate(node2=ft_regex_tokenizer(data_2, input.col = "A", output.col = "D", pattern="[.]")) %>% sdf_register("mutated")
然后我尝试
mut_trial %>% mutate(E=D[[1]])
eval(expr,envir,enclos)中的错误:object' D'没找到。
我不确定我是否以正确的方式这样做,但想知道是否还有其他任何功能可供使用,或者是否有办法解决此功能以实现我想要的效果。
答案 0 :(得分:0)
代码在scala中希望你能得到这个想法并在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 |
+------------+----+---+----+
希望这有帮助!