Scala 使用spark过滤并存储结果

Scala 使用spark过滤并存储结果,scala,apache-spark,Scala,Apache Spark,我有一个包含如下数据的文件: 100|hyd|xxx|32 101|chn|yyy|98 103|chn|abc|87 104|hyd|nbx|56 在这里,我想根据位置(hyd,chn)过滤数据,并将其存储在文本文件中。 我尝试了下面的代码 val file=sc.textFile("/home/cloudera/abc.txt") val file2=file.map(line=>line.split("\\|")) val file3 = file2.filter(line=>

我有一个包含如下数据的文件:

100|hyd|xxx|32
101|chn|yyy|98
103|chn|abc|87
104|hyd|nbx|56
在这里,我想根据位置(hyd,chn)过滤数据,并将其存储在文本文件中。 我尝试了下面的代码

val file=sc.textFile("/home/cloudera/abc.txt")
val file2=file.map(line=>line.split("\\|"))
val file3 = file2.filter(line=>line.apply(1).matches("hyd")).saveAsTextFile("/home/cloudera/hyd")
当我检查/home/cloudera/hyd/part-00000时,路径数据以对象格式存储。 [Ljava.lang.String;@679e1175

我希望数据以纯文本格式存储

100|hyd|xxx|32
104|hyd|nbx|56

谢谢。

将列表转换为字符串只缺少一件事

这可以通过以下方式轻松完成:

val file=sc.textFile("/home/cloudera/abc.txt")
val file2=file.map(line=>line.split("\\|"))
val file3 = file2.filter(line=>line.apply(1).matches("hyd")).map(line=>line.mkString("|")).saveAsTextFile("/home/cloudera/hyd")

将列表转换为字符串只缺少一件事

这可以通过以下方式轻松完成:

val file=sc.textFile("/home/cloudera/abc.txt")
val file2=file.map(line=>line.split("\\|"))
val file3 = file2.filter(line=>line.apply(1).matches("hyd")).map(line=>line.mkString("|")).saveAsTextFile("/home/cloudera/hyd")