我有Spark Streaming应用程序(v 2.4.0),该应用程序按分钟输出镶木地板格式的数据。 对于某些随机文件,尝试使用实木复合地板工具或Amazon Athena读取文件时遇到问题。
Required field 'uncompressed_page_size' was not found in serialized data!
这是输出部分的实现方式。
ds.foreachRDD { rdd =>
val filteredRDD = rdd.filter(_.isDefined).map(a => a.get)
if (!filteredRDD.isEmpty()) {
val spark = SparkSession.builder.config(rdd.sparkContext.getConf).getOrCreate()
import spark.implicits._
val now = utcNow()
val location = s"${appConfig.output}" +
s"/${datef(now, "yyyyMM")}" +
s"/${datef(now, "yyyyMMdd")}" +
s"/${datef(now, "yyyyMMddHH")}" +
s"/${appConfig.exchange}${datef(now, "yyyyMMddHHmmss")}"
filteredRDD.toDF().write.parquet(location)
}
}
您知道火花未写入必填标头字段的原因是什么吗?