2017-09-12 56 views
0

我有取决于VM参数是否被设置为TRUEFALSE一个leftanti join一块使用Apache火花连接两个dataframes与条件依赖于一个VM参数-DearlyData=TRUE用于inner join Java代码,-DearlyData=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或字符串earlyData一个VM Argument
  • 在这样的conditional中使用一个与另一个相比,是否存在缺陷或无法预​​料的复杂情况?
+1

https://stackoverflow.com/a/7054981/1490322 –

+0

这正是我所期待的。谢谢! – Jeremy

回答

0

根据提供的信息here用户Jose Martinez,VM参数对于此用例是正确的。

为了详细说明,我有一个cron揭开序幕的inner具有-DearlyData=TRUE检索数据早在上午参加,并利用leftanti通过在脚本中使用-DearlyData=FALSE用于晚期数据在晚上参加一个cron。

相关问题