【问题标题】:How to conduct Data Preprocessing with Hadoop MapReduce or Spark?如何使用 Hadoop MapReduce 或 Spark 进行数据预处理?
【发布时间】:2017-02-16 15:19:42
【问题描述】:

我对 Hadoop MapReduce/Spark 非常陌生,对于我的目标项目,我想使用 Hadoop MapReduce/Spark 执行数据预处理。我知道 Hadoop MapReduce 的基础知识,但我不知道如何使用这个框架实现预处理算法/方法。对于 Hadoop MapReduce,我必须定义 Map()Reduce()<key, value> 对作为从 Mappers 到 Reducers 的传输类型。但是对于数据库表,我如何处理<key, value> 格式的表条目?应用主键作为键似乎是无稽之谈。 Spark 的情况类似,因为我需要指定密钥。

例如,对于数据库表中的每个数据条目,某些条目的某些字段可能会丢失,因此我想为那些具有插补策略的字段添加默认值。如何以<key, value> 方式处理数据条目?在这里将主键设置为key 是无稽之谈,因为如果是这种情况,每个<key, value> 对将不会与其他对具有相同的键,因此在这种情况下聚合没有帮助。

【问题讨论】:

    标签: hadoop apache-spark mapreduce hadoop-streaming


    【解决方案1】:

    Map reduce 是一种低级编程。您可以从 HIVE 和 PIG 等高级抽象开始。

    如果您要处理结构化数据,请使用 HIVE,这是一种类似于 SQL 的界面,可将 SQL 内部转换为 MR 作业。

    希望这会有所帮助。

    【讨论】:

    • 好的,我明白了。你知道 Hadoop MapReduce 是如何实现这些高级抽象的吗?
    • PIg 和 Hive 是建立在 Map Reduce 之上的高级抽象。
    • 我知道 Pig 和 Hive 是什么,但它们如何使用原始 Hadoop MapReduce 实现数据预处理?这是否依赖于其他包?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    相关资源
    最近更新 更多