我有一段Java代码,使用Apache Spark连接两个数据帧,条件依赖于-DearlyData=TRUE
的VM参数inner join
和{{1}的-DearlyData=FALSE
取决于VM参数是设置为leftanti join
还是TRUE
(技术上,如果设置为FALSE
或任何其他值。)
这是我的代码的简化版本:
``
TRUE
``
我的代码有效,但我的问题是:
String earlyData = System.getProperty(Constants.EARLY_DATA);
if(earlyData.equalsIgnoreCase("TRUE")){
log.trace("Running Early Data");
DataBo.processData(earlyDF.join(cassandraDF,
earlyDF.col(AA).equalTo(example.col(BB))
.and(earlyDF.col(CC).equalTo(example.col(DD))),"inner")
drop(Constants.AA, Constants.CC));
}else{
log.trace("Running Late Data");
DataBo.processData(earlyDF.join(cassandraDF,
earlyDF.col(AA).equalTo(example.col(BB))
.and(earlyDF.col(CC).equalTo(example.col(DD))), "leftanti")
.drop(Constants.AA, Constants.CC));
或Environment Variable
作为字符串VM Argument
吗?earlyData
中使用一个与另一个相比是否存在缺陷或不可预见的并发症?答案 0 :(得分:0)
根据用户here提供的信息Jose Martinez,VM参数对于此用例是正确的。
详细说明,我有一个Cron通过让inner
检索早期数据来启动-DearlyData=TRUE
加入,以及一个在晚上使用leftanti
加入的Cron在脚本中使用-DearlyData=FALSE
来获取后期数据。