繁体   English   中英

如何将 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]))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM