Map方法sql.row提取 - Spark中的数据类型错误

问题描述:

我有一个.sql.Row类型RDDMap方法sql.row提取 - Spark中的数据类型错误

我使用map方法从row解包并创建一个新的RDD

这个问题是直接从我在Scala RDD String manipulation中了解到的。

在原来的RDD,vertices_raw我有一个字段Metrics,我使用地图上。

val vertices = vertices_raw.rdd.map(row=> (row.getAs[String]("Metrics").map(_.stripPrefix("name").toLong)) 

在所得:

error: value stripPrefix is not a member of Char 

这同样适用于.drop方法用于去除name

我已经尝试添加toString试图从Char转换为String而没有任何更改。

val vertices = vertices_raw.rdd.map(row=> (row.getAs[String]("Metrics").toString.map(_.stripPrefix("name").toLong)) 

代替getAs[String]我也试过getString

val vertices = vertices_raw.rdd.map(row=> (row.getString("Metrics").map(_.stripPrefix("name").toLong)) 
error: type mismatch; 
found : String("toid") 
required: Int 

我实际的问题是我怎么转换从CharString?在执行map函数之前?

我的根本问题是getAs[String]究竟是什么意思,如果它不字面意思是get和String格式?我清楚地误解了这一点。

您正在对字符串执行映射 - 即要映射字符串的每个字符。如果你只是想打电话给stripPrefix,那就不用地图。

row.getAs[String]("Metrics").stripPrefix("name").toLong