我有一个名为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")
^