【发布时间】:2017-12-12 23:28:33
【问题描述】:
我已经尝试解决这个问题很长时间了......不知道为什么我会得到这个?仅供参考,我在 AWS EMR 集群上的集群上运行 Spark。我调试并清楚地看到提供的目标路径......类似于s3://my-bucket-name/。 spark 作业创建 orc 文件并在创建分区后写入它们,如下所示:date=2017-06-10。有什么想法吗?
17/07/08 22:48:31 ERROR ApplicationMaster: User class threw exception: java.lang.IllegalArgumentException: Can not create a Path from an empty string
java.lang.IllegalArgumentException: Can not create a Path from an empty string
at org.apache.hadoop.fs.Path.checkPathArg(Path.java:126)
at org.apache.hadoop.fs.Path.<init>(Path.java:134)
at org.apache.hadoop.fs.Path.<init>(Path.java:93)
at org.apache.hadoop.fs.Path.suffix(Path.java:361)
at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelationCommand.deleteMatchingPartitions(InsertIntoHadoopFsRelationCommand.scala:138)
at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelationCommand.run(InsertIntoHadoopFsRelationCommand.scala:82)
写orc的代码:
dataframe.write
.partitionBy(partition)
.option("compression", ZLIB.toString)
.mode(SaveMode.Overwrite)
.orc(destination)
【问题讨论】:
-
有没有可能有空分区?
-
orc 文件首先写入
_temporary目录,然后移动到主目录。不知道这种情况会如何出现! -
贴出可能有助于理解问题的代码
-
用编写的代码更新了问题。
标签: amazon-web-services apache-spark amazon-s3 amazon-emr