当前位置:  开发笔记 > 编程语言 > 正文

如何将函数应用于Spark DataFrame的列?

如何解决《如何将函数应用于SparkDataFrame的列?》经验,为你挑选了1个好方法。

我们假设我们有一个Spark DataFrame

df.getClass
Class[_ <: org.apache.spark.sql.DataFrame] = class org.apache.spark.sql.DataFrame

使用以下架构

df.printSchema
root
|-- rawFV: string (nullable = true)
|-- tk: array (nullable = true)
|    |-- element: string (containsNull = true)

鉴于列的每一行tk都是一个字符串数组,如何编写一个Scala函数来返回每行中的元素数量?



1> zero323..:

您不必编写自定义函数,因为有一个:

import org.apache.spark.sql.functions.size

df.select(size($"tk"))

如果你真的想要你可以写一个udf:

import org.apache.spark.sql.functions.udf

val size_ = udf((xs: Seq[String]) => xs.size)

甚至创建自定义表达式,但实际上没有意义.

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有