假设我有两个RDD-,其中一个是另一个的映射。例如:
RDD[Double] N;
RDD[Double] logN = N.map(x => Math.Log(x));
Run Code Online (Sandbox Code Playgroud)
我想对它们两者之间的匹配对进行操作。像这样:
RDD[Double] NlogN = (N,logN).map((x,y) => x*y);
Run Code Online (Sandbox Code Playgroud)
火花中可以进行这种操作吗?
这个问题是关于某种糟糕的编程习惯.我正在寻找一些可以解释它的好文章以及它为什么不好.不幸的是,我不知道这种做法的任何名称或行话.所以我会尝试描述它,然后让你告诉我它是如何调用的,并且可能会引用我一篇关于这个主题的好文章.
假设我们有一些枚举:
public enum Day
{
SUNDAY, MONDAY, ...
}
Run Code Online (Sandbox Code Playgroud)
接下来,假设服务器端程序员每天都附加一个数字id.当然,正确的做法是将每个映射Day到一个Integer使用a EnumMap,它仅在服务器端代码中定义和使用.相反,他弄乱了常用代码并添加了一个getId()方法:
public enum Day
{
SUNDAY {public int getId() {return 100;}},
MONDAY {public int getId() {return 101;}},
...;
public abstract int getId();
}
Run Code Online (Sandbox Code Playgroud)
接下来,GUI程序员想要每天附加一个字符串,所以他添加了自己的东西:
public enum Day
{
SUNDAY {
public int getId() {return 100;}
public String getName() {return "sunday";}
},
MONDAY {
public int getId() {return 101;};
public String getName() {return monday";}
},
...;
public abstract int getId();
public abstract String …Run Code Online (Sandbox Code Playgroud)