我有一个名为 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 脚本从 Spark 的 hyveContext 中可用的 HCatalog 表中创建顶点和边 RDD 得到帮助。从 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")
^