【问题标题】:How to Perform a Between Operator similar to SQL in mapreduce Hadoop如何在 mapreduce Hadoop 中执行类似于 SQL 的 Between 运算符
【发布时间】:2014-06-28 15:40:28
【问题描述】:

我正在尝试编写一个 mapreduce 作业,它将模拟 sql 查询的 between 运算符

我的情况是我有 2 个 hdfs 文件:

HDFS 文件 1 包含开始日期、结束日期和更改日期:

Start Date    | End Date   |    Changed Date
dd/MM/yyyy    | dd/MM/yyyy |    dd/MM/yyyy
dd/MM/yyyy    | dd/MM/yyyy |    dd/MM/yyyy
dd/MM/yyyy    | dd/MM/yyyy |    dd/MM/yyyy
... ... ..

HDFS 文件 2 包含需要在操作符之间执行的数据

Data 1    |   Data 2     |  DATE data | other data......
Data 1    |   Data 2     |  DATE data | other data......
Data 1    |   Data 2     |  DATE data | other data......
Data 1    |   Data 2     |  DATE data | other data......
...

我需要用 HDFS 文件 1 中的“更改日期”的值更改 HDFS 文件 2 的“日期数据”

如果且仅当

HDFS 文件 2 中的“DATE 数据”介于 HDFS 文件 1 的“开始日期”和“结束日期”之间

基本上是SQL查询where子句中的一个Between Operation

在 hadoop 中解决此问题的最佳或适当方法是什么。

我应该写 HIVE 还是 PIG 还是使用 HBASE 来解决这个问题?

我随便和一位 Hadoop 顾问讨论了他所说的编写自定义 Map Reduce 作业将更加灵活和更快的执行。
此外,它还有助于设计。

我这样做基本上是为了执行 ETL 操作。

请提出最佳方法以及如何通过自定义 Map reduce 来完成此操作
编程。

【问题讨论】:

  • 与 HDFS 文件 2 相比,您的 HDFS 文件 1 有多大?

标签: java hadoop parallel-processing mapreduce hbase


【解决方案1】:

如果这两个表都是结构化的,您可以在 Hive 中将它们创建为外部表并运行一个简单的 sql 来获取所需的结果。 或者自定义查找 mapreduce 也可以完成这项工作。自定义查找程序会更便宜

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 2012-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多