gpt4 book ai didi

scala - Spark从资源文件夹中加载jar中的csv文件

转载 作者:行者123 更新时间:2023-12-04 13:59:10 24 4
gpt4 key购买 nike

我正在尝试创建一个在 Scala 上运行的 Spark 应用程序,该应用程序读取 .csv文件位于 src/main/resources目录并将其保存在本地 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

如何正确链接到我的文件?

最佳答案

使用 getPath()URLgetResource 返回的对象获取绝对路径:

getClass.getResource("data.csv").getPath()
像这样: /upload-data-scala-project/target/scala-2.11/classes/data.csv使用 toString将为您提供 URL 的字符串表示形式,例如: file:/upload-data-scala-project/target/scala-2.11/classes/data.csv它没有前导斜杠,因此被解释为相对路径。

关于scala - Spark从资源文件夹中加载jar中的csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55045895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com