我应该使用VM参数还是环境变量?

时间:2017-09-12 19:31:19

标签: java apache-spark dataframe

我有一段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中使用一个与另一个相比是否存在缺陷或不可预见的并发症?

1 个答案:

答案 0 :(得分:0)

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

详细说明,我有一个Cron通过让inner检索早期数据来启动-DearlyData=TRUE加入,以及一个在晚上使用leftanti加入的Cron在脚本中使用-DearlyData=FALSE来获取后期数据。