如何使用Hadoop MapReduce或Spark进行数据预处理?

时间:2017-02-16 15:19:43

标签: hadoop apache-spark mapreduce hadoop-streaming

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

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

1 个答案:

答案 0 :(得分:0)

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

如果您正在处理结构化数据,那么您可以使用HIVE,这就像SQL一样,它可以将SQL转换为MR作业。

希望这有帮助。