如何从HCatalog中的顶点和边表创建用于GraphX的顶点和边缘RDD

时间:2015-02-09 23:36:36

标签: scala apache-spark spark-graphx

我有一个名为vertex_table的表存储在HCatalog中,其中包含一个vertex_id类型为Long,vertex_name类型为String,vertex_label类型为String。 我还在HCatalog中存储了一个名为edge_table的表,其中包含以下字段:ida类型Long,idb类型Long和edge_label类型String。

从Spark中的scala REPL shell,我可以使用hiveContext成功查询这些表。例如:

val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)
hiveContext.hql("SELECT vertex_id, vertex_name, vertex_label FROM vertex_table")

我想从这两个表中创建一个Apache Spark GraphX图。

我在Spark,GraphX和scala处于新手级别。因此,我将帮助一个scala脚本创建我的HCatalog表中的顶点和边缘RDD,这些表可以在Spark中的hyveContext中使用。从HCatalog vertex_table创建顶点RDD的示例就足够了。

我自己的实验导致以下错误:

scala> val vertexRDD: RDD[(Long, String, String)] = hiveContext.sql("SELECT vertex_id, vertex_name, vertex_label FROM vertex_table")

<console>:18: error: type mismatch;
 found   : org.apache.spark.sql.SchemaRDD
 required: org.apache.spark.rdd.RDD[(Long, String, String)]
     val vertexRDD: RDD[(Long, String, String)] = hiveContext.sql("SELECT vertex_id, vertex_name, vertex_label FROM vertex_table")
                                                                                                                     ^

0 个答案:

没有答案