我们有大量包含客户信息的文本文件。我们必须从这个HDFS文件中删除特定的行;例如,与客户端X,Y和Z关联的行,并保留其他行。
答案 0 :(得分:0)
“行”的概念仅适用于行分隔数据。例如,如果您有Parquet数据或XML文件...您想要删除记录。
一个不仅仅是从HDFS文件中“删除记录”。 HDFS is an append only filesystem。
如果数据已经在HDFS上,你可以做的最好的事情是读取文件,过滤掉你不想要的数据(使用你想要的任何工具 - 猪或Spark将是最简单的IMO),然后写一个新的文件,可选择覆盖旧数据。
为了防止这种情况发生,您需要在数据源和HDFS之间进行ETL过程,以便提前清理数据。
答案 1 :(得分:0)
首先在该hdfs位置的顶部创建一个hive表,然后使用过滤器逻辑从第一个hive表创建另一个hive表。现在删除第一个hive表。确保表应该是内部的。