在 HDFS 上存储 graphx 顶点并稍后加载
Storing graphx vertices on HDFS and loading later
我创建了一个 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
保存 RDD 有问题吗?还是通过 textFile
阅读?
回读时需要指定类型
val verticesRDD : RDD[(VertexId, Long)] = sc.objectFile("location/vertices")
我创建了一个 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
保存 RDD 有问题吗?还是通过 textFile
阅读?
回读时需要指定类型
val verticesRDD : RDD[(VertexId, Long)] = sc.objectFile("location/vertices")