我有一個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