apachespark使用包含括号的scala输出文件

apachespark使用包含括号的scala输出文件,scala,apache-spark,Scala,Apache Spark,我加入两个RDD并使用以下代码。输出文件包含键和值之间的括号,我理解这是因为我只是将键、值对转储到输出文件中。我是Scala和Spark的新手。请帮助,我需要不带括号的输出 逻辑是我得到了两个类Data1和Data2,它们包含输入数据的值,我使用键(finalKey)将它们连接起来 这是我得到的输出: (20080103,(SFO,150,94)) (20080103,(SFO,150,94)) (20080103,(SFO,150,94)) (20080103,(SFO,150,94)) (2

我加入两个RDD并使用以下代码。输出文件包含键和值之间的括号,我理解这是因为我只是将键、值对转储到输出文件中。我是Scala和Spark的新手。请帮助,我需要不带括号的输出

逻辑是我得到了两个类Data1和Data2,它们包含输入数据的值,我使用键(finalKey)将它们连接起来

这是我得到的输出:

(20080103,(SFO,150,94))
(20080103,(SFO,150,94))
(20080103,(SFO,150,94))
(20080103,(SFO,150,94))
(20080103,(SFO,150,94))
(20080103,(SFO,150,94))
(20080103,(SFO,150,94))

所以,这感觉有点。。。不雅的。。。但如果您想要的是文本文件中的字符串,而不使用paren,那么您可以尝试一下

def noParens( s : String ) : String = s.filter( c => c != '(' && c != ')' )
val data33=data11.join(data22,1).map( tuple => noParens( tuple.toString ) )

要将键值对映射为逗号分隔的字符串,请执行以下操作:

data33.map { case (key, value) => s"$key,$value" }.saveAsTextFile(...)
要映射任何n元组,请执行以下操作:

data33.map(_.productIterator.mkString(",")).saveAsTextFile(...)
我无法准确地找出
data33
的类型,但显然第一种形式(使用模式匹配)可以扩展到元组或case类的任何“层次结构”(
Product
s):


非常感谢!正是我想要的!非常感谢,先生!
data33.map(_.productIterator.mkString(",")).saveAsTextFile(...)
data33.map { case (a, (b, (c, d), e)) => s"$a,$b,$c,$d,$e" }.saveAsTextFile(...)