SparkStreaming 分析字符串与初始化特定 类 开销

SparkStreaming analyzing strings vs initializing specific classes overhead

在我的 spark 应用程序中,我收到逗号分隔的字符串,然后将其拆分并作为数组进行分析。我在 main 开始时就确定了索引, 所有人 static final int。代码的可读性足够好,虽然不是很清晰,并且在一段时间后跟踪所有内容会变得有点麻烦。伪代码示例:

data = receivedString.split(",");
rdd.map({
    someOperation = operation(data[CONSTANT_INDEX]);
    someOtherOperation = otherOperation(data[INDEX],data[INDEX2];
    data[RESULT_INDEX] = thirdOperation(data[THIRD_INDEX];});

在另一部分代码中,我尝试使用特定的 class 来托管我的数据并对其进行操作:更容易跟踪我的操作。例如:

rdd.map({MyClass class = new MyClass(String[]);
some operation = operation(MyClass.getElement1);
increaseOperation = MyClass.increaseValue();
MyClass.setOtherValue(thirdOperation(MyClass.getOtherValue));});

如果我每秒 24/7 有 100 行,我应该使用哪种方法? class 创建开销是否会对我的环境造成太大压力?
我希望这不会进入 "personal opinion" 标志:您个人使用哪种方法以及如何选择它?

"Premature optimization is the root of all evil." - Donald Knuth

代码可读性、可测试性和可维护性是软件工程的主要目标。 Class 创建确实会产生一些开销,但与分布式进程中涉及的 I/O 相比,这可能可以忽略不计。

因此,请使用提高代码质量的方法,并且仅在发现性能问题时才 "go down to the metal"。对于 "find",我的意思是我们使用分析技术来确定性能问题所在。