2017-01-08 98 views
0

我有包含像下面的數據文件存儲結果:過濾器和使用火花

100|hyd|xxx|32 
101|chn|yyy|98 
103|chn|abc|87 
104|hyd|nbx|56 

在這裏,我想篩選基於位置(路政署,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 

謝謝。

回答

2

你只是錯過了將列表轉換爲字符串的一件事!

這可以以這種方式很容易做到:

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")