【问题标题】:Pig UDF or Pig Latin or both?Pig UDF 或 Pig Latin 还是两者兼而有之?
【发布时间】:2015-08-18 16:28:15
【问题描述】:

在什么情况下应该使用 pig UDF,在什么情况下应该使用 Pig Latin

上下文: 我正在做一个重建 SQL“日志”数据库的项目,我必须设计新的 NoSQL 数据库。我正在学习 NoSQL,对 Hadoop/Cloudera 了解甚少。

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

感谢您的回答。

【问题讨论】:

    标签: hadoop apache-pig udf


    【解决方案1】:

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

    否则,在 Java MapReduce 中执行。

    猪的好处:

    像 CSV 这样的结构化数据真的很容易加载和使用 不比Java慢多少 不易出现 Java 级错误 更容易阅读和写作 无需编译:更易于维护,更易于部署 有一些事情您可能一开始认为您无法在 Pig 中完成并希望使用 Java 来完成,但是一旦您对它有所了解,您就可以在 Pig 中完成:

    您可以用 Java 编写用户定义的加载器。无论如何,您都将编写一些 Java 来解析这种复杂的数据格式,那么为什么不在 Pig Loader 中进行呢? 嵌套 map 和 bag 数据类型可以很好地模拟分层数据结构,但您可能必须编写大量 UDF。 您可以在 Pig 中使用 Java MapReduce。这使您可以在 Pig 中进行艰苦的操作,而在其他地方进行更简单的操作。 这里有一些,但你明白了。 Pig 是非常可定制的,一般情况下您最终会编写更少的 Java。

    基本的东西很容易。我们可以做一些事情,比如分层数据结构和自定义加载。好的,那还剩下什么?

    分区器的特殊用途来做 MapReduce 不适合做的事情。 非常讨厌的数据格式或完全非结构化的数据(视频、音频、原始人类可读文本) 在 DistributedCache 中进行复杂的操作(基本的事情可以通过 JOIN 和 USING 'replicated' 来完成) 希望其他人可以在 cmets 中添加他们在 Pig 中无法完成的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-22
      • 2014-07-20
      • 1970-01-01
      • 2011-10-16
      • 1970-01-01
      • 2018-09-27
      • 1970-01-01
      相关资源
      最近更新 更多