【发布时间】:2017-11-22 19:58:56
【问题描述】:
//download file csv
ByteArrayOutputStream downloadedFile = downloadFile();
//save file in temp folder csv (
java.io.File tmpCsvFile = save(downloadedFile);
//reading
Dataset<Row> ds = session
.read()
.option("header", "true")
.csv(tmpCsvFile.getAbsolutePath())
tmpCsvFile保存在以下路径:
/mnt/yarn/usercache/hadoop/appcache/application_1511379756333_0001/container_1511379756333_0001_02_000001/tmp/1OkYaovxMsmR7iPoPnb8mx45MWvwr6k1y9xIdh8g7K0Q31188872422
阅读异常:
org.apache.spark.sql.AnalysisException:路径不存在: HDFS://ip-33-33-33-33.ec2.internal:8020的/ mnt /纱线/ usercache / hadoop的/应用程序缓存/ application_1511379756333_0001 / container_1511379756333_0001_02_000001 / TMP / 1OkYaovxMsmR7iPoPnb8mx45MWvwr6k1y9xIdh8g7K0Q3118887242212394029.csv; P>
我认为问题在于文件保存在本地,当我尝试通过 spark-sql api 读取时找不到文件。 我已经尝试过 sparkContext.addFile() 并且不起作用。
有什么解决办法吗?
谢谢
【问题讨论】:
-
文件 /mnt/yarn/usercache/hadoop/appcache/application_1511379756333_0001/.. 似乎是一个本地文件。您是否尝试使用 file:/// 选项阅读。试试这个 Dataset
ds = session.read().option("header", "true").csv(file:///tmpCsvFile.getAbsolutePath())
标签: java apache-spark apache-spark-sql spark-dataframe emr