与结构化流等效的addFile()

时间:2020-02-05 23:34:43

标签: apache-spark ssl databricks spark-structured-streaming

我需要在驱动程序和执行程序上公开密钥库文件,以使其在结构化流查询-ssl设置中可用。我正在使用databricks集群,由于加密设置,目前无法访问/ dbfs / filesysem(通过dbfs本地文件API),也无法使用外部存储。无论如何,我都需要能够将此文件作为临时解决方案公开。

结构化流查询设置的相关部分如下所示:

var streamingInputDF = 
  spark.readStream
    .option("kafka.ssl.keystore.location", "mykeystore.jks")

我可以使用dbfs spark API将文件从DBFS读取到数据帧,但是我需要能够将文件系统位置作为参数传递(在这种情况下,将其保存在数据帧中是没有帮助的。)

使用dbutils,我可以将文件从dbfs复制到驱动程序,但是我不知道如何向工作人员公开文件。

我正在尝试使用:

sc.addFile("mykeystore.jks") // this line works as I have this file locally on the driver

    var streamingInputDF = 
      spark.readStream
        .option("kafka.ssl.keystore.location", org.apache.spark.SparkFiles.get("myketstore.jks"))

但是,出现“没有这样的文件或目录”错误。我猜是因为上下文不同。我正在寻找将文件公开给驱动程序和工作人员的方法。

0 个答案:

没有答案