如何将 org.apache.spark.sql.Column 转换为 Long 或 String 等数据类型
How to convert org.apache.spark.sql.Column to data types like Long or String
我是 Scala 和 Spark 的新手。我正在尝试从 Spark SQL 加载数据以构建 graphX 顶点但是我遇到了一个错误,我不知道如何解决。这是代码:
val vRDD: RDD[(VertexId, String)] = spark.sparkContext.parallelize(Seq(spark.table("sw")))
.map(row => (row("id"), row("title_value")))
这是错误:
<console>:36: error: type mismatch;
found : org.apache.spark.sql.Column
required: org.apache.spark.graphx.VertexId
(which expands to) Long
val vRDD: RDD[(VertexId, String)] = spark.sparkContext.parallelize(Seq(spark.table("sw")))
.map(row => (row("id"), row("title_value")))
错误消息是正确的,您正在返回列。您可以使用以下命令将这些值从列中拉出:
spark.sparkContext.parallelize(Seq(spark.table("testme")))
.map(row => (row("id").asInstanceOf[Long],row("name").toString))
或者也许:
spark.sparkContext.parallelize(Seq(spark.table("testme")))
.map(row => (row("id").asInstanceOf[VertexId],row("name").asInstanceOf[String]))
我是 Scala 和 Spark 的新手。我正在尝试从 Spark SQL 加载数据以构建 graphX 顶点但是我遇到了一个错误,我不知道如何解决。这是代码:
val vRDD: RDD[(VertexId, String)] = spark.sparkContext.parallelize(Seq(spark.table("sw")))
.map(row => (row("id"), row("title_value")))
这是错误:
<console>:36: error: type mismatch;
found : org.apache.spark.sql.Column
required: org.apache.spark.graphx.VertexId
(which expands to) Long
val vRDD: RDD[(VertexId, String)] = spark.sparkContext.parallelize(Seq(spark.table("sw")))
.map(row => (row("id"), row("title_value")))
错误消息是正确的,您正在返回列。您可以使用以下命令将这些值从列中拉出:
spark.sparkContext.parallelize(Seq(spark.table("testme")))
.map(row => (row("id").asInstanceOf[Long],row("name").toString))
或者也许:
spark.sparkContext.parallelize(Seq(spark.table("testme")))
.map(row => (row("id").asInstanceOf[VertexId],row("name").asInstanceOf[String]))