我有一个.sql.Row
类型RDD
。
我正在使用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
的{{1}}方法也是如此。
我尝试添加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
转换为Char
?在执行String
功能之前?
我的基本问题是map
究竟是什么意思,如果它没有字面意思得到和以字符串格式?我清楚地误解了这一点。
答案 0 :(得分:2)
您正在对字符串执行映射 - 该映射将映射到字符串的每个字符串。如果您只想调用stripPrefix,那么只需在没有地图的情况下执行此操作。
row.getAs[String]("Metrics").stripPrefix("name").toLong