我有一个数据帧字段,它是一个<code>Seq[Seq[String].
def combineSentences(inCol: String, outCol: String): DataFrame => DataFrame = {
def flatfunc(seqOfSeq: Seq[Seq[String]]): Seq[String] = seqOfSeq match {
case null => Seq.empty[String]
case _ => seqOfSeq.flatten
}
df: DataFrame => df.withColumn(outCol, udf(flatfunc _).apply(col(inCol)))
}
我的用例是字符串,但显然,这可能是通用的。您可以在数据帧转换链中使用此函数,如:
df.transform(combineSentences(inCol, outCol))
是否有一个Spark内置函数可以做同样的事情?我找不到一个。
有一个类似的函数(从Spark 2.4开始),它被称为扁平化
:
import org.apache.spark.sql.functions.flatten
来自官方文件:
def展平(e:列):列
从数组的数组创建单个数组。如果嵌套数组的结构深度超过两层,则只移除一层嵌套。
自从
2.4.0
要获得确切的等效项,您必须合并
以替换 NULL
。
注意:这个问题被简单地标记为这个问题的重复,但它不是完全的重复,因为我是专门询问std::optionals的。如果你关心一般情况,还是一个很好的问题。 假设我有嵌套的选项,如下所示(愚蠢的玩具示例): 还有这个垃圾邮件功能: 什么是压扁这张可选支票的最佳方法?我做了这样的东西,它不是可变的,但我不太关心这个(如果真的需要,我可以再添加一个级别(用),而且超出这个级别的所有东西都是可怕的代码)。
如我们所知,要使用方法对数组进行展平 那么如何将这个数组平坦化为呢?
本文向大家介绍Python中的扁平化嵌套列表迭代器,包括了Python中的扁平化嵌套列表迭代器的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个嵌套的整数列表;我们必须实现一个迭代器以使其扁平化。每个元素可以是整数,也可以是列表。该列表的元素也可以是整数或其他列表。因此,如果输入类似于[[1,1],2,[1,1]],则输出将为[1,1,2,1,1,1] 为了解决这个问题,我们将遵循以下步骤-
如何将一个简单的(即没有嵌套结构的)数据表扁平化为列表?我的习题集是检测从节点对表中更改/添加/删除的所有节点对。 这意味着我有一个“before”和“after”表要比较。将before和after dataframe组合在一起生成的行描述了一对数据在一个dataframe中出现而在另一个dataframe中不出现的位置。 单独且不同地合并所有列 平面地图和不同的 映射和展平 由于结构是众所周知
给定对象的复杂嵌套集合,如: 是否存在一个泛型方法来将其平坦化并获得包含在其中的所有的单个? null
问题内容: 此问题特定于从[GitHub Repo使用:flatten](https://github.com/amirziai/flatten) 该软件包位于pypi flatten-json 0.1.7上,可以与 此问题特定于软件包的以下组件: 使用递归展平嵌套 用Python递归思考 在Python中展平JSON对象 嵌套如何?: 已用于解压缩最终超过100000列的文件 展平的JSON是否