3

好的,所以在收到关于无法通过 spark 将密钥写入镶木地板文件的异常后,我查看了 API,只发现了这个。

public class ParquetOutputFormat<T> extends FileOutputFormat<Void, T> {....

(我的假设可能是错误的 =D,并且某处可能还有另一个 API。)

好的,这有点扭曲的意义,毕竟您可以在数据从容器文件中具体化时投影/限制数据。但是,为了安全起见。Parquet 文件没有序列文件的“键”值的概念,对吧?

我觉得这有点奇怪,Hadoop 基础架构是围绕一个序列文件可能有一个密钥这一事实而构建的。而且我假设这个密钥被自由地用于将数据划分为局部块(不是在 HDFS 级别 ofc)?Spark 有很多 API 调用可以与代码一起使用来进行归约和连接等。现在我必须做额外的步骤来将键从物化对象的主体中映射出来。诡异的。

那么,为什么钥匙不是镶木地板世界的一等公民有什么充分的理由呢?

4

1 回答 1

4

你是对的。Parquet 文件不是键/值文件格式。这是一种柱状格式。您的“键”可以是表格中的特定列。但它不像 HBase,你有一个真正的关键概念。Parquet 不是序列文件。

于 2014-02-18T21:33:35.660 回答