好的,所以在得到关于无法通过spark将密钥写入镶木地板文件的例外后,我查看了API并发现了这一点。
public class ParquetOutputFormat<T> extends FileOutputFormat<Void, T> {....
(我的假设可能是错的= D,某处可能还有其他API。)
确定这会产生一些扭曲的感觉,毕竟你可以投影/限制数据,因为它是从容器文件中实现的。但是,为了安全起见。 Parquet文件没有序列文件的概念&#34;键&#34;价值吧?
我发现这有点奇怪,Hadoop基础设施建立在一个序列文件可能有一个密钥的事实上。我认为这个密钥可以自由地用于将数据划分为块用于局部性(不是在HDFS级别的c)? Spark有许多API调用,可以使用代码进行缩减和连接等。现在我必须做一些额外的步骤,将键映射到物化对象的主体。怪异。
所以,为什么一把钥匙不是镶木地板上的头等公民的任何好理由?
答案 0 :(得分:4)
你是对的。 Parquet文件不是键/值文件格式。这是一种柱状格式。您的“密钥”可以是表格中的特定列。但它不像HBase,你有一个真正的关键概念。 Parquet不是序列文件。