首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问Spark UDF函数中的整行?

如何访问Spark UDF函数中的整行?
EN

Stack Overflow用户
提问于 2019-12-10 17:12:17
回答 1查看 114关注 0票数 2

我们使用纯SQL语法来转换数据,并具有自定义的UDF函数。示例:

代码语言:javascript
复制
UDF_FUNCTION(String, Int)

此函数可能会产生异常,我们希望为用户提供详细的错误信息。在行中,我们有关于文件和row_id的信息,这就是为什么我们要访问所提到的UDF中的整行,以提供有关file_uuid和row_id的详细错误。有人知道这件事吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-12-10 17:27:17

您可以使用udf函数将所有列发送到。您必须在的匿名函数中使用udf行类型作为输入参数。类似于下面的示例:

代码语言:javascript
复制
  def udf_full_row = udf { (row: Row) =>
    val your_transformed_int = (row.getAs[Int]("value as int") + 1)
    your_transformed_int
  }

  import org.apache.spark.sql.functions.{col, struct}

  val df_test : DataFrame = ???
  val cols_array = df_test.columns.map(col(_))

  df_test.withColumn("your_new_colun", udf_full_row(struct(cols_array: _*)))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59263715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档