将结构保留UDF应用于数据框

时间:2017-09-27 17:56:03

标签: scala apache-spark struct apache-spark-sql

我有架构

 |-- count: struct (nullable = true)
 |    |-- day1: long (nullable = true)
 |    |-- day2: long (nullable = true)
 |    |-- day3: long (nullable = true)
 |    |-- day4: long (nullable = true)
 |-- key: string (nullable = true)

我希望对数据进行转换,以保留count的结构,即它仍然有类型long的四个字段(day1,day2,...) 。我想要做的转换是将day1字段的值添加到其他字段。我的想法是使用UDF,但我不确定如何让UDF返回具有相同结构的结构,以及2)如何在UDF中访问它正在转换的结构的字段(为了获取day1字段的值。 UDF的逻辑应该很简单,比如

s : StructType => StructType(s.day1, s.day1+s.day2, s.day1+s.day3,s.day1+s.day4)

但我不知道如何获得正确的类型/保留原始结构的字段名称。我对Spark很新,所以任何指导都非常感谢。

另外,如果有人能指出我这种类型的正确文档,我将不胜感激。我觉得这种简单的转换应该非常简单,但我正在阅读Spark文档,我不清楚这是如何完成的。

1 个答案:

答案 0 :(得分:1)

我不会使用echo "<span style='background-color: rgb($red, $green, $blue)' title='#".$red.$green.$blue."'></span>"; 。只需udf / select

withColumn