Google Spread Sheet Spark库

时间:2017-01-28 09:19:48

标签: scala apache-spark

我正在使用https://github.com/potix2/spark-google-spreadsheets库来阅读spark中的电子表格文件。它在我当地完美运作。

val df = sqlContext.read.
    format("com.github.potix2.spark.google.spreadsheets").
    option("serviceAccountId", "xxxxxx@developer.gserviceaccount.com").
    option("credentialPath", "/path/to/credentail.p12").
    load("<spreadsheetId>/worksheet1")

我创建了一个包含所有凭据的新程序集jar,并使用该jar来读取文件。但我在阅读credentialPath文件时面临问题。我尝试使用

getClass.getResourceAsStream("/resources/Aircraft/allAircraft.txt")

但是库只支持绝对路径。请帮我解决这个问题。

3 个答案:

答案 0 :(得分:0)

使用SBT并尝试typesafe config library

这是simple but complete sample,它从resources文件夹中的配置文件中读取一些信息。

然后你可以使用sbt-assembly插件组装一个jar文件。

答案 1 :(得分:0)

您可以使用--filesspark-submit的{​​{1}}参数来分发凭据文件。如果要在工作节点中获取凭证文件的本地路径,则应调用SparkContext.addFile()

SparkFiles.get("credential filename")

答案 2 :(得分:0)

如果您在Databricks环境中工作,则可以upload the credentials file

设置GOOGLE_APPLICATION_CREDENTIALS环境变量as described here并不能帮助您解决此要求,因为它是文件路径的链接,而不是实际的凭证。有关获取正确凭据和使用库的更多详细信息,请参见here