【发布时间】:2016-06-16 00:45:24
【问题描述】:
我有一个spark.rdd.RDD[String] MapPartition,我用过滤器创建了它。
val myMapPartition = myTextFile.filter(_.split("\t")(2) == "\"red\"")
此过滤器通过制表符分隔我的 textFile 行并检查结果数组的第二个元素是否等于“red”
myMapPartition.collect() 返回 Array 类型的 String。这是一个例子:
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。我不确定如何正确映射它以让我专注于各个领域。
免责声明: Scala/Spark 菜鸟
【问题讨论】:
标签: string scala dictionary apache-spark rdd