在没有主键的情况下使用 pig 删除重复项
delete duplicates using pig where there is no primary key
我是 hadoop 的新手,我有一个用例,其中有 3 列名称、值、时间 stamp.The 数据是逗号分隔的 csv 格式,我需要检查重复项并删除他们使用 pig.How 我能做到吗?
您可以使用 pig DISTINCT
函数来删除重复项。
请参考此 link 以了解 DISTINCT
功能。
正如您所说,您的数据驻留在 HIVE table 中并且您希望通过 pig 访问这些数据,您可以使用 HCatLoader()
通过 pig 访问 HIVE table。 HCatalog
可用于外部和内部 HIVE
table。但在使用此功能前,请确认您的集群已配置HCatalog
。如果您使用的是 Hadoop 2.X 那么它应该在那里。
使用 HCatalog 你的猪 LOAD
命令将是这样的。
A = LOAD 'table_name' using HCatLoader();
如果您不想使用 HCatalog
并且如果您的 HIVE
table 是 external
table 并且您知道 HDFS 位置数据然后你可以使用 CSVLoader()
来访问数据。使用 CSVLoader()
你的猪 LOAD
命令将是这样的。
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,
);
Hive 外部 table 的设计方式使用户可以访问
来自 Hive 外部的数据,例如 Pig 和 MapReduce 编程。但是如果你的 HIVE
table 是内部的 table 并且你想使用 Pig 分析数据,那么你可以使用 HCatLoader()
通过 pig 访问 hive table 数据.
在这两种情况下,分析过程中都不会对原始数据产生任何影响。这里你访问的是数据,不是修改原始数据。
请参考下面有用的内容link以了解更多关于 HCat 的信息。
http://hortonworks.com/hadoop-tutorial/how-to-use-hcatalog-basic-pig-hive-commands/
https://cwiki.apache.org/confluence/display/Hive/HCatalog+UsingHCat
我是 hadoop 的新手,我有一个用例,其中有 3 列名称、值、时间 stamp.The 数据是逗号分隔的 csv 格式,我需要检查重复项并删除他们使用 pig.How 我能做到吗?
您可以使用 pig DISTINCT
函数来删除重复项。
请参考此 link 以了解 DISTINCT
功能。
正如您所说,您的数据驻留在 HIVE table 中并且您希望通过 pig 访问这些数据,您可以使用 HCatLoader()
通过 pig 访问 HIVE table。 HCatalog
可用于外部和内部 HIVE
table。但在使用此功能前,请确认您的集群已配置HCatalog
。如果您使用的是 Hadoop 2.X 那么它应该在那里。
使用 HCatalog 你的猪 LOAD
命令将是这样的。
A = LOAD 'table_name' using HCatLoader();
如果您不想使用 HCatalog
并且如果您的 HIVE
table 是 external
table 并且您知道 HDFS 位置数据然后你可以使用 CSVLoader()
来访问数据。使用 CSVLoader()
你的猪 LOAD
命令将是这样的。
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,
);
Hive 外部 table 的设计方式使用户可以访问
来自 Hive 外部的数据,例如 Pig 和 MapReduce 编程。但是如果你的 HIVE
table 是内部的 table 并且你想使用 Pig 分析数据,那么你可以使用 HCatLoader()
通过 pig 访问 hive table 数据.
在这两种情况下,分析过程中都不会对原始数据产生任何影响。这里你访问的是数据,不是修改原始数据。
请参考下面有用的内容link以了解更多关于 HCat 的信息。
http://hortonworks.com/hadoop-tutorial/how-to-use-hcatalog-basic-pig-hive-commands/
https://cwiki.apache.org/confluence/display/Hive/HCatalog+UsingHCat