Hadoop中的数据分析主要有以下几种方式:
1、 Hive SQL分析:
- Hive支持类SQL语言,可以通过简单的查询语句实现数据分析。
- 编写SELECT语句,选择需要的字段与条件过滤数据。
- 使用内置函数进行聚合、JOIN等运算分析数据。
- 优点是简单易用,学习成本低。缺点是实时性较差,不适合复杂分析。
2、 MapReduce分析:
- 编写Mapper和Reducer,实现自定义的数据分析逻辑。
- 在Driver中设置MapReduce任务的参数以控制和调整分析过程。
- 优点是可扩展性高,可以实现任意复杂的分析算法。缺点是开发难度较大,实时性也较差。
3、 Spark SQL与DataFrame分析:
- Spark SQL支持结构化数据处理,提供DataFrame API进行数据分析。
- 可以在SQL中查询DataFrame,也可以在代码中进行各种运算分析。
- 与Hive SQL相比,Spark SQL实时性高,性能也更优。
- DataFrame在内存中进行分析,延迟很低,适合交互式数据分析。
4、 图计算分析:
- 图计算框架如Giraph可以高效实现图结构 related 数据的分析。
- 通过迭代算法计算图中节点的Ranking,找到重要节点或社区等。
- 需要对数据构建图结构,然后调用图算法和框架进行分析。
- 优点是可以发现隐藏在复杂图结构中的知识与规律。缺点是学习曲线陡峭,开发难度大。
示例:
1、 Hive SQL分析:
SELECT page,count(*) as counts
FROM access_log
GROUP BY page
ORDER BY counts DESC;
- 查询访问日志,按页面统计访问次数,并排序输出结果。
2、 Spark DataFrame分析:
python
# 读取数据创建DataFrame
df = spark、read、json("data、json")
# 选择指定的列进行分析
df = df、select("age", "salary")
# 分组并进行聚合运算
df、groupBy("age").avg("salary").show()
# 使用SQL语句查询
df、createOrReplaceTempView("table")
spark.```("SELECT * FROM table WHERE age > 30").show()
- 读取数据创建DataFrame,选择指定字段,
- 使用groupBy与avg进行聚合分析,
- 创建临时视图后使用SQL查询进行分析。