【Spark】HashMap转RDD
创始人
2024-12-17 03:35:53
0

1、读取本地文件,转换成map

val path = "文件路径" val source = Source.fromFile(path).getLines().toList.mkString("").replaceAll(" ","")  val key = JSON.parseObject(source).get("key").toString val columns = JSON.parseObject(source).get("value").toString  val map = new util.HashMap[String, String]() map.put("RK", getValue(key))  JSON.parseObject(columns.toString).keySet().asScala.foreach(elem => {     val valueJson = JSON.parseObject(columns.toString).get(elem).toString     map.put(elem, getValue(valueJson)) })    def getValue(str: String): String = {      val value = str.toString.replace("[","").replace("]","")     JSON.parseObject(value).get("value").toString }

2、将map转变成rdd

val schema = StructType(map.asScala.toSeq.map {case(k,v) =>     StruchField(k, StringType, nullable = true) })  val row = Row.fromSeq(map.values().asScala.toSeq)  val rowRDD = spark.sparkContext.parallelize(Seq(row))  val df = spark.createDataFrame(rowRDD, schema)

备注:数据格式

{     "key":[         {             "name":"RK",             "type":"String",             "value":"1234567890"         }     ],     "columns":{         "column_name1":[             "name":"column_name1",             "type":"String",             "value":"111"            ],         "column_name2":[             "name":"column_name2",             "type":"String",             "value":"222"            ],         "column_name3":[             "name":"column_name3",             "type":"String",             "value":"333"            ]     } }

相关内容

热门资讯

今日头条!哈灵斗地主(竟然有挂... 今日头条!哈灵斗地主(竟然有挂)详细辅助挂教程1、每一步都需要思考,不同水平的挑战会更加具有挑战性,...
六分钟了解!福建天天开心辅助器... 六分钟了解!福建天天开心辅助器真的(竟然是真的有挂)详细透明挂教程;1.福建天天开心辅助器真的 ai...
一分钟秒懂!小程序雀神麻将来牌... 一分钟秒懂!小程序雀神麻将来牌技巧(竟然真的是有挂)详细透视辅助教程1)小程序雀神麻将来牌技巧辅助挂...
发现玩家!手机绍兴麻将带挂神器... 发现玩家!手机绍兴麻将带挂神器(本来是有挂)详细透视辅助教程1、点击下载安装,手机绍兴麻将带挂神器插...
六分钟了解!钱塘十三水拿好牌攻... 六分钟了解!钱塘十三水拿好牌攻略(一贯真的是有挂)详细透视教程;1、全新机制【钱塘十三水拿好牌攻略软...
最新通报!掌中乐游戏中心能不能... 最新通报!掌中乐游戏中心能不能开挂(原来有挂)详细透明挂教程1、掌中乐游戏中心能不能开挂机器人多个强...
实测交流!中至乐平麻将攻略(竟... 您好,中至乐平麻将攻略这款游戏可以开挂的,确实是有挂的,需要了解加微【757446909】很多玩家在...
技术分享!人人烟台麻将怎么赢(... 技术分享!人人烟台麻将怎么赢(竟然真的是有挂)详细透视辅助教程;人人烟台麻将怎么赢辅助器中分为三种模...
一分钟了解!鄂州晃晃有苹果软件... 一分钟了解!鄂州晃晃有苹果软件吗(竟然是真的有挂)详细透视教程;1、首先打开鄂州晃晃有苹果软件吗最新...
免费测试版!胡乐白银麻将有挂吗... 免费测试版!胡乐白银麻将有挂吗(总是有挂)详细辅助教程;1、胡乐白银麻将有挂吗透视辅助简单,胡乐白银...