scala - 在 Spark Scala 中对数组的每个成员应用函数
问题描述
我在数据框中有一列是字符串数据类型的数组。我需要提取字符串的一部分,因此我需要对数组的每个元素应用正则表达式。所以我想使用 scala Dataframe API 来应用它。
regexp_extract($"myString","(\\d+)-(\\d+)",1).cast(LongType)
在数组的每个成员上。
对一个字符串执行此操作很简单,但是如何对数组的每个项目执行此操作?
解决方案
您可以使用transform
将函数应用于每个数组元素:
val df2 = df.withColumn(
"myString",
expr("transform(myString, x -> cast(regexp_extract(x, '(\\\\d+)-(\\\\d+)',1) as bigint))")
)
推荐阅读
- xml - 如何修复“根元素后面的文档中的标记必须格式正确。” 日食中的错误
- html - 如何在页面顶部绘制半圆
- c# - 如何使 Visual Studios 正确突出显示蓝色类?
- dax - 使用 SUMMARIZE 计算一系列日期的值
- python - discord.py 上的角色位置
- c - 当这个来自嵌套在其他结构中的结构时,malloc char 指针如何
- python - 在 QImage 之上创建一个透明网格
- sql-server - 在 HashByte md5 函数中使用 varchar(8000) 列值
- javascript - 延迟加载 amchart 不会在向下滚动时呈现
- json - 无法将 Json 数组解码为列表
并得到错误类型'_InternalLinkedHashMap ' 不是类型 'List 的子类型 '