这是我尝试做的一个简化版本。我想在我的自定义项中做一些计数。因此,一种方法是将长累加器传递给udf,并在反序列化protobuf函数中增加if-else循环中的acumulator。但却无法使用语法。有人能帮我吗?有没有更好的办法?
def deserializeProtobuf(raw_data: Byte[Array]) = {
val input_stream = new ByteArrayInputStream(raw_data)
parsed_data = CustomClass.parseFrom(input_stream)
if (condition 1 related to parsed_data) {
< increment variable1 >
}
else if (condition 2 related to parsed_data) {
< increment variable2 >
}
else {
< increment variable3 >
}
}
val decode = udf(deserializeProtobuf _)
val deserialized_data = ds.withColumn("data", decode(col("protobufData")))
暂无答案!
目前还没有任何答案,快来回答吧!