Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 可以将spark配置为将空数据集推断为空模式_Apache Spark_Amazon Emr - Fatal编程技术网

Apache spark 可以将spark配置为将空数据集推断为空模式

Apache spark 可以将spark配置为将空数据集推断为空模式,apache-spark,amazon-emr,Apache Spark,Amazon Emr,我们在年/月/日/小时内划分了许多拼花地板数据集 只有一个\u SUCCESS文件的几个小时是空的 我们实现了迭代所有分区并执行工作的作业。我们在打开空数据集时遇到问题。与org.apache.spark.sql.AnalysisException冲突:无法推断拼花地板的架构。必须手动指定。 (使用EMR5.3.0-我们正在努力摆脱依赖,以便升级到更高版本) 火花壳示例: Welcome to ____ __ / __/__ ___ _____/

我们在年/月/日/小时内划分了许多拼花地板数据集

只有一个
\u SUCCESS
文件的几个小时是空的

我们实现了迭代所有分区并执行工作的作业。我们在打开空数据集时遇到问题。与org.apache.spark.sql.AnalysisException冲突:无法推断拼花地板的架构。必须手动指定。

(使用EMR5.3.0-我们正在努力摆脱依赖,以便升级到更高版本)

火花壳示例:

Welcome to
      ____              __
    / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
  /___/ .__/\_,_/_/ /_/\_\   version 2.1.0
      /_/

Using Scala version 2.11.8 (OpenJDK 64-Bit Server VM, Java 1.8.0_121)
Type in expressions to have them evaluated.
Type :help for more information.

scala> val df = spark.read.parquet("s3://some-bucket/empty-dataset/")
org.apache.spark.sql.AnalysisException: Unable to infer schema for Parquet. It must be specified manually.;
  at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$8.apply(DataSource.scala:189)
  at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$8.apply(DataSource.scala:189)
正如spark所说,我可以指定一个模式,但这对我来说是不切实际的,因为模式很大,每个分区都不同(不要问)


我的首选解决方案是,如果可以将spark配置为将空数据集推断为空模式

理想情况下
spark.read.parquet
应采用param
ignoreEmptyFiles=true
,不幸的是,这不受支持


您所能做的最好的事情是,在读取之前过滤空目录

Hi。把这个作为答案,我接受它作为答案。