我们如何从HDFS中删除特定行?

时间:2018-01-05 10:04:05

标签: hadoop hdfs

我们有大量包含客户信息的文本文件。我们必须从这个HDFS文件中删除特定的行;例如,与客户端X,Y和Z关联的行,并保留其他行。

2 个答案:

答案 0 :(得分:0)

“行”的概念仅适用于行分隔数据。例如,如果您有Parquet数据或XML文件...您想要删除记录

一个不仅仅是从HDFS文件中“删除记录”。 HDFS is an append only filesystem

如果数据已经在HDFS上,你可以做的最好的事情是读取文件,过滤掉你不想要的数据(使用你想要的任何工具 - 猪或Spark将是最简单的IMO),然后写一个新的文件,可选择覆盖旧数据。

为了防止这种情况发生,您需要在数据源和HDFS之间进行ETL过程,以便提前清理数据。

答案 1 :(得分:0)

首先在该hdfs位置的顶部创建一个hive表,然后使用过滤器逻辑从第一个hive表创建另一个hive表。现在删除第一个hive表。确保表应该是内部的。