Spark输出实木复合地板问题

时间:2019-02-27 13:48:02

标签: apache-spark spark-streaming parquet amazon-athena presto

我有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)
    }
}

您知道火花未写入必填标头字段的原因是什么吗?

0 个答案:

没有答案