在Scala中设置GOOGLE_APPLICATION_CREDENTIALS环境变量

时间:2018-03-02 23:12:53

标签: scala apache-spark

我正在使用Scala运行Spark-Shell,我想设置一个环境变量来将数据加载到Google bigQuery中。环境变量为GOOGLE_APPLICATION_CREDENTIALS,其中包含/path/to/service/account.json

在python环境中我很容易做到,

import os 
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = "path/to/service/account.json"

但是,我不能在Scala中这样做。我可以使用

打印出系统环境变量
scala> sys.env

scala> System.getenv()

返回一个String Key,Value对的映射。然而,

scala> System.getenv("GOOGLE_APPLICATION_CREDENTIALS") = "path/to/service/account.json"

返回错误

<console>:26: error: value update is not a member of java.util.Map[String,String]

1 个答案:

答案 0 :(得分:0)

尽管我认为这不是最佳实践,但我找到了解决该问题的方法。这是两步解决方案-

  1. 在终端/ cmd中,首先创建环境变量-

    export GOOGLE_APPLICATION_CREDENTIALS=path/to/service/account.json

  2. 相同终端窗口中,打开spark-shell并运行-

    System.getenv("GOOGLE_APPLICATION_CREDENTIALS")