小编Man*_*nny的帖子

Apache Pig 将整个关系加载到 UDF 中

我有一个属于 2 Pig 关系的 Pig 脚本,比如说 A 和 B。A 是一个小关系,B 是一个大关系。我的 UDF 应该将所有 A 加载到每台机器上的内存中,然后在处理 B 时使用它。目前我是这样做的。

A = foreach smallRelation Generate ...
B = foreach largeRelation Generate propertyOfB;
store A into 'templocation';
C = foreach B Generate CustomUdf(propertyOfB);
Run Code Online (Sandbox Code Playgroud)

然后我让每台机器从“templocation”加载到 A.This 工作,但我有两个问题。

  1. 我的理解是我应该以某种方式使用 HDFS 缓存,但我不确定如何将关系直接加载到 HDFS 缓存中。
  2. 当我在 UDF 中重新加载文件时,我必须编写逻辑来解析从 A 输出到文件的输出,而我宁愿直接使用包和元组(是否有内置的 Pig java 函数将字符串解析回包/元组形式?)。

有谁知道应该怎么做?

apache-pig

5
推荐指数
1
解决办法
882
查看次数

标签 统计

apache-pig ×1