在Spark Shell中运行脚本时避免打印代码

时间:2019-04-10 07:35:17

标签: scala apache-spark

我正在尝试使用scala文件中的脚本从spark shell中连接到DB。 当连接脚本从其他位置获取密码时,它会在spark shell控制台中打印。 我只是想避免那些。

Scala中的代码如下,

val config=Map("driver"->"drivername","url"->"dburl","user"->"username","password"->"741852963");

在Spark Shell中加载此代码时,这也会在Spark Shell中打印代码。我希望这些单独的部分不在Spark Console中打印。

我该如何实现?

1 个答案:

答案 0 :(得分:5)

您可以通过多种方式实现这一目标:

  • 您可以将配置定义包装在一个对象中。 Spark Shell只会输出定义了一个对象
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="menu">
    <ul>
       <li><a href="index.jsp" class="active">Home</a></li>
       <li><a href="listnews.jsp">News</a></li>
       <li><a href="abc.jsp">ABC</li>
    </ul>
</div>

然后,您可以简单地将配置引用为scala> object ConfigHolder { | val config=Map("secret"->"value") | } defined object ConfigHolder 而不是ConfigHolder.config

  • 您可以使用config命令在外壳中禁用/重新启用输出打印
:silent

当然,这些操作都不能阻止任何可访问spark外壳的人读取您的凭据,而只是阻止临时围观者看到它们。