当我尝试将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”替换“”都不起作用。
有人提示如何从包含空格的路径加载数据吗?