【发布时间】:2019-12-09 14:19:00
【问题描述】:
我有一些输入文件,所有文件共享相同的架构。它们都有一个名为channel_id 的字段,但对于file1、channel_id = 1、对于file2、channel_id = 2。
我需要对这些文件做一些 ETL。但是,对于不同的文件,逻辑是不同的。比如有一个UDF来计算channel_name
val getChannelNameUdf : UserDefinedFunction = udf((channelId: Integer) => {
if (channelId == 1) {
"English"
} else if (channelId == 2) {
"French"
} else {
""
}
})
由于我们有多个频道,使用if-else 似乎不太优雅。是否有更优雅的方式或合适的设计模式来编写代码?非常感谢。
【问题讨论】:
标签: apache-spark apache-spark-sql user-defined-functions