在哪种情况下我们应该使用pig udf,在哪种情况下我们应该使用pig拉丁语上下文:我正在进行一个重建sql“logs”数据库的项目,我必须设计新的nosql数据库。我正在学习nosql,对hadoop/cloudera知之甚少。我想用pig加载数据我没有使用cloudera,但可能会使用它谢谢你的回答。
pod7payv1#
如果你能在Pig(或 hive )里做,就在Pig(或 hive )里做。否则,请在JavaMapReduce中执行。Pig的好处:像csv这样的结构化数据很容易加载和使用,速度不比java慢很多,不容易出现java级的错误,读写更容易,不需要编译:更容易维护,更容易部署有一些事情你可能认为你一开始不能在pig中做,想用java来做,但是你可以在pig中做,一旦你对它有了更多的了解:您可以用java编写用户定义的加载程序。无论如何,您都要编写一些java来解析复杂的数据格式,所以为什么不在pig加载程序中进行呢?嵌套map和bag数据类型可以很好地建模分层数据结构,但是您可能需要编写大量的udf。您可以在pig中使用javamapreduce。这让你可以在pig中完成艰难的操作,但在其他地方更容易。这里有一些,但你明白了。pig是非常可定制的,一般来说,您编写的java会更少。基本的东西很简单。我们可以做一些事情,比如分层数据结构,和定制加载。好吧,剩下什么?使用分区器来做mapreduce不打算做的事情。真正讨厌的数据格式或完全非结构化的数据(视频、音频、原始的人类可读文本)在分布式缓存中执行复杂的操作(基本的事情可以通过连接和使用“复制”来完成)希望其他人可以在评论中添加他们在pig中不能做的事情。
1条答案
按热度按时间pod7payv1#
如果你能在Pig(或 hive )里做,就在Pig(或 hive )里做。
否则,请在JavaMapReduce中执行。
Pig的好处:
像csv这样的结构化数据很容易加载和使用,速度不比java慢很多,不容易出现java级的错误,读写更容易,不需要编译:更容易维护,更容易部署有一些事情你可能认为你一开始不能在pig中做,想用java来做,但是你可以在pig中做,一旦你对它有了更多的了解:
您可以用java编写用户定义的加载程序。无论如何,您都要编写一些java来解析复杂的数据格式,所以为什么不在pig加载程序中进行呢?嵌套map和bag数据类型可以很好地建模分层数据结构,但是您可能需要编写大量的udf。您可以在pig中使用javamapreduce。这让你可以在pig中完成艰难的操作,但在其他地方更容易。这里有一些,但你明白了。pig是非常可定制的,一般来说,您编写的java会更少。
基本的东西很简单。我们可以做一些事情,比如分层数据结构,和定制加载。好吧,剩下什么?
使用分区器来做mapreduce不打算做的事情。真正讨厌的数据格式或完全非结构化的数据(视频、音频、原始的人类可读文本)在分布式缓存中执行复杂的操作(基本的事情可以通过连接和使用“复制”来完成)希望其他人可以在评论中添加他们在pig中不能做的事情。