在没有主键的情况下使用pig删除重复项

时间:2015-11-28 04:36:52

标签: hadoop duplicates apache-pig

我是hadoop的新手,我有一个用例,其中有3列名称,值,时间戳。数据是,逗号分隔并且是csv格式我需要检查重复项并使用pig删除它们。我怎样才能做到这一点。

1 个答案:

答案 0 :(得分:1)

您可以使用pig DISTINCT函数删除重复项。 请参阅此link以了解DISTINCT功能。

正如您所说,您的数据位于HIVE表中,并且您希望通过pig访问这些数据,您可以使用HCatLoader()通过pig访问HIVE表。 HCatalog可用于外部和内部HIVE表。但在使用此功能之前,请验证您的群集是否已配置HCatalog。如果您使用的是Hadoop 2.X,那么它应该就在那里。

使用HCatalog,你的猪LOAD命令将是这样的。

A = LOAD 'table_name' using HCatLoader();

如果您不想使用HCatalog,并且您的HIVE表格是external表,并且您知道数据的HDFS位置,那么您可以使用{{1访问数据。使用CSVLoader()你的猪CSVLoader()命令将是这样的。

LOAD

Hive外部表的设计方式是用户可以访问的 来自外部蜂巢的数据,如Pig和MapReduce编程。但是,如果您的REGISTER piggybank.jar define CSVLoader org.apache.pig.piggybank.storage.CSVLoader(); --Load data using CSVLoader. A = LOAD '/user/hdfs/dirtodata/MyData.csv' using CSVLoader AS ( name:chararray, value:chararray, timestamp:chararray, ); 表是内部表,并且您想使用Pig分析数据,则可以使用HIVE通过pig访问配置单元数据。

在这两种情况下,在分析过程中原始数据都不会有任何影响。您在这里访问数据,而不是修改原始数据。

请参阅以下有用链接,了解有关HCat的更多信息。

http://hortonworks.com/hadoop-tutorial/how-to-use-hcatalog-basic-pig-hive-commands/

https://cwiki.apache.org/confluence/display/Hive/HCatalog+UsingHCat

相关问题