我需要在驱动程序和执行程序上公开密钥库文件,以使其在结构化流查询-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"))
但是,出现“没有这样的文件或目录”错误。我猜是因为上下文不同。我正在寻找将文件公开给驱动程序和工作人员的方法。