在 Spark scala 中将行转换为地图

2024-01-08

我有数据框中的一行,我想将其转换为 Map[String, Any],将列名称映射到该列的行中的值。

有简单的方法吗?

我是为字符串值做的,比如

def rowToMap(row:Row): Map[String, String] = {
row.schema.fieldNames.map(field => field -> row.getAs[String](field)).toMap
}

val myRowMap = rowToMap(myRow)

如果该行包含其他值,而不是像 String 这样的特定值,那么代码会变得更混乱,因为该行没有方法.get(field)

有任何想法吗?


您可以使用getValuesMap:

val df = Seq((1, 2.0, "a")).toDF("A", "B", "C")    
val row = df.first

To get Map[String, Any]:

row.getValuesMap[Any](row.schema.fieldNames)
// res19: Map[String,Any] = Map(A -> 1, B -> 2.0, C -> a)

或者你可以获得Map[String, AnyVal]对于这个简单的情况,因为值不是复杂的对象

row.getValuesMap[AnyVal](row.schema.fieldNames)
// res20: Map[String,AnyVal] = Map(A -> 1, B -> 2.0, C -> a)

Note: the returned value type of the getValuesMap can be labelled as any type, so you can not rely on it to figure out what data types you have but need to keep in mind what you have from the beginning instead.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Spark scala 中将行转换为地图 的相关文章

随机推荐

  • 如何允许在 WiX 刻录引导程序中选择 MSI 功能?

    我刚刚开始尝试使用 Burn 来尝试链接多个 MSI 文件 我使用的是 WiX v3 6 2705 0 链接正在工作 但我现在正在尝试让可选功能正常工作 我希望这只是将我的 MsiPackage 标签的 EnableFeatureSelec
  • 了解 std::function 和 std::bind

    我正在玩 std function 和 std bind 我注意到一些不直观的东西 我想更好地理解它 例如 void fun void hun std string int main function
  • 将动态值与图像组件一起使用时出现问题反应本机

    我从数据库获取数据并将其放入源图像中 这将是错误的 但如果我只放入字符串它将运行正常 Run ok
  • 将 future 与 boost::asio 一起使用

    有谁有一个很好的指向使用示例的指针来自 Boost 线程库的 futures http www boost org doc libs 1 53 0 doc html thread synchronization html thread sy
  • 如何检测 Ionic 4 离子内容组件中的滚动到达终点?

    在 Ionic v3 ion content 中 有像 scrollTop 这样的属性 在 Ionic v4 中不再有这样的属性 我如何确定用户是否到达了内容的末尾 https ionicframework com docs v3 api
  • 有效使用reinterpret_cast?

    根据经验 以下工作 gcc 和 VC 但它是有效且可移植的代码吗 typedef struct int w 2 A struct B int blah 2 void my func B b using namespace std cout
  • Keras 使用 tf.data.Dataset 预测循环内存泄漏,但不使用 numpy 数组

    我在循环 Keras 模型时遇到内存泄漏和性能下降predict使用时的功能tf data Dataset为模型提供数据 但在使用 numpy 数组提供数据时则不然 有谁了解造成此问题的原因和 或如何解决该问题 最小可重现代码片段 复制 粘
  • 根据 WooCommerce 中的付款方式提高购物车商品价格

    我想根据所选的支付网关为购物车商品价格添加百分比值 我面临的问题是产品价格的变化没有更新产品价格 最初选择的价格始终显示 我怎样才能得到相应的改变后的价格 到目前为止我的代码 Set custom cart item price funct
  • 根据不同列中的值重复行

    我有一个交易数据框 每行代表两个项目的交易 可以将其想象为 2 个活动门票或其他东西的交易 我想根据销售数量复制每一行 这是示例代码 dictionary of transactions d 1 20 NYC 2 2 30 NYC 2 3
  • Gradle 构建找不到包“java.net.http”

    我已经在 Intellij 中建立了一个 Java 项目 当我在 Intellij 中构建我的项目时 一切正常 但是当我尝试使用命令行构建它时gradle build在项目目录中 Gradle 抱怨找不到 java net http 包 这
  • 使用 javascript 从数组中删除重复的对象

    我试图找出一种有效的方法来删除数组中重复的对象 并寻找最有效的答案 我环顾互联网 一切似乎都在使用原始数据 或者对于大型数组来说不可扩展 这是我当前的实现 可以改进并且希望尝试避免标签 Test prototype unique funct
  • 使用 Spring 和 Hibernate 的嵌套事务

    在我的应用程序中 有多个步骤 其中许多提交将通过多种方法按顺序进行 例子 A gt B gt C gt D gt E gt F gt G A 调用 B B 调用 C 然后 B 调用 D D 调用 E 依此类推 所有这些方法都有一些数据库操作
  • T-SQL 条件排序依据

    我正在尝试编写一个存储过程 它返回一个对象列表 其中包含用户选择的排序顺序和排序方向并作为 sql 参数传入 假设我有一个包含以下列的产品表 product id int name varchar value int created dat
  • 为什么这个 Javascript DOM 代码只能在 FF 上运行,而不能在 IE 上运行?

    create an instance of the XML parser if window ActiveXObject Checking if the browser is IE xmlDoc new ActiveXObject Micr
  • 为什么 innerHTML 返回“未定义”?

    我试图捕捉这个 div 中的 值 它是可编辑的 div class editable div Hey div 我想我可以通过 JavaScript 简单地做到这一点 var changedText editable div innerHtm
  • Iphone Textview 不调用 TouchesBegan

    我有一个文本字段 当我触摸屏幕上的其他位置时 通过我的 TouchesBegan 函数并辞职 等等 它会隐藏键盘 但是当我触摸 Textview 时 TouchesBegan 不会被调用 键盘也不会隐藏 有没有办法调用 TouchesBeg
  • F# 记录类型的序列化

    我知道如何使用可变对象在 F 中序列化 但是有没有办法使用 XmlSerializer 或 DataContractSerializer 使用记录类型进行序列化 反序列化 看起来有一种方法可以使用 KnownType 属性为有区别的联合执行
  • 随机密码生成器上的 OpenMP 多线程

    我正在尝试使用集成到 Visual Studio 2010 中的 OpenMP 多线程来制作快速密码生成器 假设我有一个基本的字符串生成器 它可以从字符串中随机提取字符 srand time 0 for i 0 i lt length i
  • PHP - 生成给定字符的所有可能组合

    Update 是的 我知道不建议将所有内容存储在单个数组中 我一次添加了 5000 个组合的限制 但出现了一个新问题 我可以得到前 5000 个组合 但我想不出任何东西可以生成其余的组合 5001 到 10000 10001 到 15000
  • 在 Spark scala 中将行转换为地图

    我有数据框中的一行 我想将其转换为 Map String Any 将列名称映射到该列的行中的值 有简单的方法吗 我是为字符串值做的 比如 def rowToMap row Row Map String String row schema f