我的文件包含如下数据:
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
谢谢。
答案 0 :(得分:2)
你只是缺少一个将列表转换为String的东西!
这可以通过这种方式轻松完成:
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")