看起来在web中找到的所有Spark示例都是作为单个long函数构建的(通常在main中)
但通常情况下,将长调用分解为以下函数是有意义的:
典型的签名看起来像这样(这是Java代码,但类似的签名将出现在所有语言中)
private static Dataset<Row> myFiltering(Dataset<Row> data) {
return data.filter(functions.col("firstName").isNotNull()).filter(functions.col("lastName").isNotNull());
}
这里的问题是Row
的内容没有安全性,因为字段上没有强制执行,调用函数不仅仅是匹配单一内容而是内容Row
。这显然可能(在我的情况下)会导致错误。
您在大型开发环境中实施的最佳做法是什么?你把代码留作一个长函数吗?你每次改变字段名称都会受苦吗?
答案 0 :(得分:0)
是的,您应该将方法拆分为更小的方法。请注意,许多小功能也不太可读;)
我的规则:
标记为社区Wiki,因为这只是我的观点,也是StackOverflow的OT。其他人有任何其他建议,请分享:)