2017-09-12 58 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。

相關問題