我有一个spark.rdd.RDD[String] MapPartition
,我用过滤器创建。Spark - Rdd字符串清理/操作
val myMapPartition = myTextFile.filter(_.split("\t")(2) == "\"red\"")
该过滤器由制表符分割我的文本文件线和检查所得到的阵列的第二元件是否等于“红色”
myMapPartition.collect()
返回String
类型的Array
。这里是一个例子:
24344 "someString" "red"
23421 "someOtherString" "red"
我想对字符串执行一些编辑。最终,我在查看一些字符串替换逻辑,但我试图先串联一个字符串。所以我要寻找的是这样的:
24344 "someString hello" "red"
23421 "someOtherString hello" "red"
我试图做到这一点使用map
:
val myCleanRdd = myMapPartition.map(_1 => (_1.concat(" hello")))
不过,我结束了:
24344 "someString" "red" hello
23421 "someOtherString" "red" hello
我的问题是我如何操纵rdd行的某些元素?我认为问题在于我的排被认为是一个String
。我不知道如何正确映射这个,让我专注于个别领域。
免责声明:斯卡拉/星火小白
正是我正在寻找!有两件事情:你可以讨论如何将这个模式应用于像stringReplace功能的东西吗?另外,一旦我得到'Array [String]'的原始红色,我该如何打印?现在我只看到内存地址?谢谢! –
请参阅我的更新回答。 – DNA