数据框转换为RDD [图]斯卡拉 [英] Convert DataFrame to RDD[Map] in Scala

查看:111
本文介绍了数据框转换为RDD [图]斯卡拉的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想转换像创建一个数组:

I want to convert an array created like:

case class Student(name: String, age: Int)
val dataFrame: DataFrame = sql.createDataFrame(sql.sparkContext.parallelize(List(Student("Torcuato", 27), Student("Rosalinda", 34))))

当我收集数据框的结果,结果数组是数组[org.apache.spark.sql.Row] =阵列([托尔夸托,27],[罗莎琳达,34])

When I collect the results from the DataFrame, the resulting array is an Array[org.apache.spark.sql.Row] = Array([Torcuato,27], [Rosalinda,34])

我寻找到在RDD转换数据框[图]例如:

I'm looking into converting the DataFrame in an RDD[Map] e.g:

Map("name" -> nameOFFirst, "age" -> ageOfFirst)
Map("name" -> nameOFsecond, "age" -> ageOfsecond)

我试图通过使用地图: x._1 但这似乎并不为工作数组[spark.sql.row] 如何反正进行转换?

I tried to use map via: x._1 but that does not seem to work for Array [spark.sql.row] How can I anyway perform the transformation?

推荐答案

您可以使用地图功能与模式匹配来这里做的工作。

You can use map function with pattern matching to do the job here

import org.apache.spark.sql.Row

dataFrame
  .map { case Row(name, age) => Map("name" -> name, "age" -> age) }

这将导致 RDD [地图[字符串,任何]]

这篇关于数据框转换为RDD [图]斯卡拉的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆