首页 > 解决方案 > Spark Java API 加载路径中带有空格的文件

问题描述

当我尝试将 ORC/Parquet 文件加载到位于包含空格的路径中的 spark(2.2) 中时,我遇到了问题。

HDFS 允许目录名称中有空格。

hdfs dfs -mkdir /tmp/dir\ with\ whitespace

但是,使用 Spark 读取放置在此目录中的文件似乎是不可能的。使用带有空格的输入路径会导致 AnalysisException

final DataFrameReader reader = sparkSession.read().format("orc");
Dataset<Row> dataFrame = reader.load("[...]/tmp/dir with whitespace/abc.orc");

逻辑计划似乎很好,路径用反引号 ( orc. [...]/tmp/dir with whitespace/abc.orc) 引用。但是,由于在分析计划期间发生异常,因此无法执行。在我看来,一旦计划从逻辑路径重写为物理路径,就不再引用路径,这会导致解析问题。

将路径中的“”替换为“\”或“%20”都没有帮助。

有没有人有提示,如何从包含空格的路径加载数据?

标签: apache-sparkpathloadwhitespace

解决方案


推荐阅读