微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将RDD数组字符串转换为数据帧

如何解决如何将RDD数组字符串转换为数据帧

请帮助我将下面IP地址的RDD数组转换为数据帧。

(完全公开:我对RDD的使用经验很少)

RDD创建:

val SCND_RDD = FirsT_RDD.map(kv => kv._2).flatMap(r => r.get("ip")).map(o => o.asInstanceOf[scala.collection.mutable.Map[String,String]]).flatMap(ip => ip.get("address"))

SCND_RDD.take(3)

结果:

SCND_RDD: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[33] at flatMap at <console>:38

res87: Array[String] = Array(5.42.212.99,51.34.21.60,63.99.831.7)`

我的rdd 数据帧转换尝试:

case class X(callId: String)

val userDF = SCND_RDD.map{case Array(s0)=>X(s0)}.toDF()

这是我得到的错误

defined class X

<console>:40: error: scrutinee is incompatible with pattern type;

 found   : Array[T]
 required: String
       val userDF = NIPR_RDD22.map{case Array(s0)=>X(s0)}.toDF()

解决方法

我发表的评论是重复的问题,可能会对您有所帮助。

但是在这里,我还要离开我的审判。

False

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。