spark-scala:如何从.dat文件读取数据并将其转换并最终存储在HDFS中

时间:2018-08-12 13:24:37

标签: scala apache-spark

我是Sparkscala的新手,所以请帮助我。我有.dat文件,其中包含给定波纹管的数据列表,该文件具有序列号,名字,lastnsme。文件有19000条记录:

SerialNo FirstName LastName

1 Jhon Ward

2碧玉平托

3个Shally Stun

.etc

  1. 我需要从Spark RDD中的.dat文件读取数据
  2. 对其进行转换以获得按名字排序的RDD数据,最后将已排序的数据存储在具有以下规范的HDFS 中:

    • 输出文件应仅具有名字和姓氏
    • 名字和姓氏应以“%$”符号分隔
    • 输出应存储在单个文件中
  3. 最终存储在HDFS中

我不确定如何在spark-scala中为此编写代码。因此请帮助我。

1 个答案:

答案 0 :(得分:1)

请找到解决方法

val rdd = sc.textFile("/path/Test.dat")
val rddmap = rdd.map(i => i.split(" ")).map(i => (i(1),i(2))).sortByKey().map(i => i._1 + "%$" + i._2)
rddmap.repartition(1).saveAsTextFile("/path/TestOut1.dat")

输出

碧玉%$ Pinto

Jhon%$ Ward

Shally%$ Stun