我正在学习Apache Pig。而且我也是Hadoop的新手。所以有人可以告诉我当Pig加载/存储关系时会发生什么?更详细,例如它将调用哪些函数以及以哪种顺序?
这对我有很大帮助,谢谢:)
答案 0 :(得分:1)
你不应该考虑孤立的LOAD / STORE。
当您发出一系列pig命令时,它将使用Java构建基于Map Reduce API的执行计划。它使用延迟评估,一旦遇到DUMP或STORE命令,就会提交map reduce作业。
以下是示例脚本:
department_rows = LOAD '/apps/hive/warehouse/retail_ods.db/departments' ;
department_group = GROUP department_rows ALL;
department_count = FOREACH department_group GENERATE COUNT_STAR(department_rows) as ct;
DUMP department_count;
以上查询尝试获取表格中的记录数。
LOAD命令将使用map reduce api从HDFS位置读取数据。数据将在Pig术语中表示为BAG。 BAG被分配到department_rows 接下来的2个语句将转换为map reduce逻辑以获取计数 DUMP将调用逻辑以在标准输出中返回最终输出。
在任何步骤中,您都可以发出EXPLAIN(例如:EXPLAIN department_count)以使用map和reduce获取解释计划。如果您是Hadoop的新手,很难理解它。你需要从HDFS的基础开始,映射reduce然后进入Pig。