Csv 最佳实践:如何处理不断变化的数据记录;模式";/&引用;“列”;

Csv 最佳实践:如何处理不断变化的数据记录;模式";/&引用;“列”;,csv,hadoop,bigdata,avro,parquet,Csv,Hadoop,Bigdata,Avro,Parquet,这是一个最佳实践问题 我们的设置是一个hadoop集群,在hdfs中存储(日志)数据。我们以csv格式获取数据,每天一个文件。在这些文件上运行hadoop中的MR jobs是可以的,只要文件的“模式”,特别是列的数量不变 然而,我们面临的问题是,我们想要分析的日志记录最终会发生变化,即可能会添加或删除列。我想知道你们中的一些人是否愿意分享这些情况下的最佳实践。目前我们能想到的最好的方法是将数据存储为json格式,而不是csv格式。但是,这将增加(至少两倍)所需的存储空间。我们还带来了Apache

这是一个最佳实践问题

我们的设置是一个hadoop集群,在hdfs中存储(日志)数据。我们以csv格式获取数据,每天一个文件。在这些文件上运行hadoop中的MR jobs是可以的,只要文件的“模式”,特别是列的数量不变

然而,我们面临的问题是,我们想要分析的日志记录最终会发生变化,即可能会添加或删除列。我想知道你们中的一些人是否愿意分享这些情况下的最佳实践。目前我们能想到的最好的方法是将数据存储为json格式,而不是csv格式。但是,这将增加(至少两倍)所需的存储空间。我们还带来了ApacheAvro和ApacheParquet,并且刚刚开始研究这个


欢迎对此问题提出任何想法和评论。

使用节俭和大象鸟(twitter库)来使用相关的文件输入/输出格式

刚刚找到这个邮件列表条目,讨论了json与avro的优势:最后我们决定选择avro。Avro能够处理模式更改,并且具有到所有主要语言的连接器,包括jaql(它是IBM BigInsights的一部分)。