在hdfs上存储graphx顶点并稍后加载

zzwlnbp8  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(368)

我创建rdd: val verticesRDD: RDD[(VertexId, Long)] = vertices 我可以检查一下,一切正常:

verticesRDD.take(3).foreach(println)
(4000000031043205,1)
(4000000031043206,2)
(4000000031043207,3)

我保存这个 RDD 通过以下方式连接到hdfs: verticesRDD.saveAsObjectFile("location/vertices") 然后我尝试阅读此文件以确保其工作正常: val verticesRDD_check = sc.textFile("location/vertices") 这工作正常,但当我尝试和检查,有些东西是错误的。

verticesRDD_check.take(2).foreach(println)
    SEQ!org.apache.hadoop.io.NullWritable"org.apache.hadoop.io.BytesWritablea��:Y4o�e���v������ur[Lscala.Tuple2;.���O��xp
srscala.Tuple2$mcJJ$spC�~��f��J _1$mcJ$spJ  _2$mcJ$spxr
                                                           scala.Tuple2�}��F!�L_1tLjava/lang/Object;L_2q~xppp5���sq~pp5���sq~pp5���sq~pp5���sq~pp5���esq~pp5���hsq~pp5��୑sq~pp5���sq~pp5���q    sq~pp5��ஓ

我如何使用 saveAsObjectFile ? 还是通过阅读 textFile ?

fkvaft9z

fkvaft9z1#

回读时,需要指定类型。

val verticesRDD : RDD[(VertexId, Long)] = sc.objectFile("location/vertices")

相关问题