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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.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 Apache Spark can';t读取正在使用流作业写入的拼花地板文件夹_Apache Spark_Apache Spark Sql_Parquet - Fatal编程技术网

Apache spark Apache Spark can';t读取正在使用流作业写入的拼花地板文件夹

Apache spark Apache Spark can';t读取正在使用流作业写入的拼花地板文件夹,apache-spark,apache-spark-sql,parquet,Apache Spark,Apache Spark Sql,Parquet,当我尝试读取当前正在使用另一个spark streaming作业编写的parquet文件夹时,使用选项“mergeSchema”:“true”,我得到一个错误: java.io.IOException: Could not read footer for file val df=spark 阅读 .option(“合并模式”、“真”) .镶木地板(“路径镶木地板”) 如果没有模式合并,我可以很好地读取文件夹,但是是否可以通过模式合并来读取这样一个文件夹,而不管是否有可能对其进行更新 完全例外

当我尝试读取当前正在使用另一个spark streaming作业编写的parquet文件夹时,使用选项“mergeSchema”:“true”,我得到一个错误:

java.io.IOException: Could not read footer for file
val df=spark
阅读
.option(“合并模式”、“真”)
.镶木地板(“路径镶木地板”)
如果没有模式合并,我可以很好地读取文件夹,但是是否可以通过模式合并来读取这样一个文件夹,而不管是否有可能对其进行更新

完全例外:

java.io.IOException: Could not read footer for file: FileStatus{path=hdfs://path.parquet/part-00000-20199ef6-4ff8-4ee0-93cc-79d47d2da37d-c000.snappy.parquet; isDirectory=false; length=0; replication=0; blocksize=0; modification_time=0; access_time=0; owner=; group=; permission=rw-rw-rw-; isSymlink=false}
    at org.apache.spark.sql.execution.datasources.parquet.ParquetFileFormat$$anonfun$readParquetFootersInParallel$1.apply(ParquetFileFormat.scala:551)
    at org.apache.spark.sql.execution.datasources.parquet.ParquetFileFormat$$anonfun$readParquetFootersInParallel$1.apply(ParquetFileFormat.scala:538)
    at org.apache.spark.util.ThreadUtils$$anonfun$3$$anonfun$apply$1.apply(ThreadUtils.scala:287)
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
    at scala.concurrent.impl.ExecutionContextImpl$AdaptedForkJoinTask.exec(ExecutionContextImpl.scala:121)
    at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
    at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
    at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
    at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.lang.RuntimeException: hdfs://path.parquet/part-00000-20199ef6-4ff8-4ee0-93cc-79d47d2da37d-c000.snappy.parquet is not a Parquet file (too small length: 0)
    at org.apache.parquet.hadoop.ParquetFileReader.readFooter(ParquetFileReader.java:514)
    at org.apache.parquet.hadoop.ParquetFileReader.readFooter(ParquetFileReader.java:505)
    at org.apache.parquet.hadoop.ParquetFileReader.readFooter(ParquetFileReader.java:499)
    at org.apache.parquet.hadoop.ParquetFileReader.readFooter(ParquetFileReader.java:476)
    at org.apache.spark.sql.execution.datasources.parquet.ParquetFileFormat$$anonfun$readParquetFootersInParallel$1.apply(ParquetFileFormat.scala:544)
    ... 9 more

在创建数据帧之前,请运行以下命令:

spark.sql(“set spark.sql.files.ignoreCorruptFiles=true”)

i、 e.启用此配置-
spark.sql.files.ignoreCorruptFiles

如上所述,如果此配置为true,则Spark作业将在遇到损坏或不存在的文件时继续运行,并且已读取的内容仍将返回。此外,此配置由


可从Spark 2.1.1+

获得@JacekLaskowski需要什么
mergeSchema
才能将拼花地板文件与不同的字段集结合起来,因为模式的演变“使用另一个Spark流媒体作业编写”中的流媒体作业的输出格式是什么?你能包括整个例外情况吗?当您尝试读取批处理作业中的文件时,流处理作业是否启动并运行?只需使用示例流处理查询和批处理查询检查您的用例,所有操作都正常。如何启动流式查询?如何启动批处理作业?看起来Spark在不合并架构的情况下会忽略不完整的文件,但启用此选项后,它会尝试以某种方式使用不完整的文件,从而导致异常