2015-08-18 47 views
-1

在这种情况下,我们应该用猪UDF在这种情况下,我们应该使用隐语猪UDF或猪拉丁或两者?

语境: 我工作的一个项目,以重建一个SQL“日志”数据库和我已到设计新的NoSQL数据库。我正在学习NoSQL,并且对Hadoop/Cloudera知之甚少。

  1. 我想用猪来加载我没有使用Cloudera的数据
  2. ,但可能会使用它

谢谢您的回答。

回答

0

如果您可以在Pig(或Hive)中执行此操作,请在Pig(或Hive)中执行此操作。

否则,请在Java MapReduce中执行此操作。

优势猪:如CSV

结构化数据是很容易加载并使用 比Java 这并不是说慢得多不容易的Java级的错误 更易于读取和写入 无需编译:更容易维护,更易于部署 有几件事你可能认为你最初不能在Pig里做,并且想用Java来做,但是一旦你对它有更多了解,你可以在Pig里做:

您可以用Java编写用户定义的加载器。无论如何,您将编写一些Java来解析这种复杂的数据格式,那么为什么不在Pig Loader中做呢?嵌套图和bag数据类型可以很好地建模分层数据结构,但是您可能需要编写大量的UDF。 您可以在Pig中使用Java MapReduce。这可以让你在猪身上进行艰苦的操作,但是在其他地方更容易。 这里有几个,但你明白了。猪是非常可定制的,你最终会写出更少的Java。

基本的东西很容易。我们可以做一些事情,比如分层数据结构,并且可以通过一些努力进行自定义加载。好的,剩下的是什么?

分区器的异乎寻常的用途做某事MapReduce不适用于。 在DistributedCache中执行复杂的操作(基本的事情可以通过JOIN和USING“复制”来完成) 希望其他人可以添加他们无法访问的东西,猪在评论中做。