好的,所以在收到关于无法通过 spark 将密钥写入镶木地板文件的异常后,我查看了 API,只发现了这个。
public class ParquetOutputFormat<T> extends FileOutputFormat<Void, T> {....
(我的假设可能是错误的 =D,并且某处可能还有另一个 API。)
好的,这有点扭曲的意义,毕竟您可以在数据从容器文件中具体化时投影/限制数据。但是,为了安全起见。Parquet 文件没有序列文件的“键”值的概念,对吧?
我觉得这有点奇怪,Hadoop 基础架构是围绕一个序列文件可能有一个密钥这一事实而构建的。而且我假设这个密钥被自由地用于将数据划分为局部块(不是在 HDFS 级别 ofc)?Spark 有很多 API 调用可以与代码一起使用来进行归约和连接等。现在我必须做额外的步骤来将键从物化对象的主体中映射出来。诡异的。
那么,为什么钥匙不是镶木地板世界的一等公民有什么充分的理由呢?