Parquet API没有Keys的概念?

时间:2014-02-09 17:51:03

标签: hadoop bigdata avro data-formats parquet

好的,所以在得到关于无法通过spark将密钥写入镶木地板文件的例外后,我查看了API并发现了这一点。

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

(我的假设可能是错的= D,某处可能还有其他API。)

确定这会产生一些扭曲的感觉,毕竟你可以投影/限制数据,因为它是从容器文件中实现的。但是,为了安全起见。 Parquet文件没有序列文件的概念&#34;键&#34;价值吧?

我发现这有点奇怪,Hadoop基础设施建立在一个序列文件可能有一个密钥的事实上。我认为这个密钥可以自由地用于将数据划分为块用于局部性(不是在HDFS级别的c)? Spark有许多API调用,可以使用代码进行缩减和连接等。现在我必须做一些额外的步骤,将键映射到物化对象的主体。怪异。

所以,为什么一把钥匙不是镶木地板上的头等公民的任何好理由?

1 个答案:

答案 0 :(得分:4)

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