【发布时间】:2019-03-07 14:14:51
【问题描述】:
我正在尝试创建一个在 Scala 上运行的 Spark 应用程序,该应用程序读取位于 src/main/resources 目录中的 .csv 文件并将其保存在本地 hdfs 实例中。当我在本地运行它时,一切都很迷人,每当我将它捆绑为 .jar 文件并将其部署到服务器上时,就会出现问题......
这是我的代码,位于src/main/scala,我的数据文件的位置是src/main/resources/dataset.csv:
val df = spark.read
.format("csv")
.option("header", "true")
.option("inferSchema", "true")
.load(getClass.getResource("dataset.csv").toString())
当我通过调用 sbt package 创建一个 jar 并将其部署到我的服务器时,我收到以下错误:
Exception in thread "main" java.lang.IllegalArgumentException:
java.net.URISyntaxException:
Relative path in absolute URI: jar:file:/root/./myapp_2.11-0.1.jar!/dataset.csv
如何正确链接到我的文件?
【问题讨论】:
-
您可以将 csv 文件存储在 HDFS 中并从您的 Spark 作业中读取它,然后将其写回吗?这似乎是一个更好的设计,可以将数据与处理数据的应用分开。
标签: scala apache-spark