Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache pig Pig:如何循环遍历所有字段/列?_Apache Pig - Fatal编程技术网

Apache pig Pig:如何循环遍历所有字段/列?

Apache pig Pig:如何循环遍历所有字段/列?,apache-pig,Apache Pig,我对猪不熟悉。我需要对表中的所有字段/列进行一些计算。然而,我无法通过在线搜索找到一种方法。如果这里有人能帮上忙,那就太好了 例如:我有一个包含100个字段/列的表,其中大多数是数字。我需要找到每个字段/列的平均值,有没有一种优雅的方法可以不重复平均值(列_xxx)100次 如果只有一两列,那么我可以 B = group A by ALL; C = foreach B generate AVERAGE(column_1), AVERAGE(columkn_2); 然而,如果有100个字段,重复

我对猪不熟悉。我需要对表中的所有字段/列进行一些计算。然而,我无法通过在线搜索找到一种方法。如果这里有人能帮上忙,那就太好了

例如:我有一个包含100个字段/列的表,其中大多数是数字。我需要找到每个字段/列的平均值,有没有一种优雅的方法可以不重复平均值(列_xxx)100次

如果只有一两列,那么我可以

B = group A by ALL;
C = foreach B generate AVERAGE(column_1), AVERAGE(columkn_2);
然而,如果有100个字段,重复平均写入100次是非常乏味的,而且很容易出错

我能想到的一种方法是在Python中嵌入Pig,并使用Python生成这样的字符串并将其放入编译。然而,即使它有效,这听起来仍然很奇怪


提前感谢您的帮助

我不认为有一个好的方法来处理猪。但是,这应该足够好,可以在5分钟内完成:

  • 描述有问题的表(或别名)
  • 复制输出,并手动将其重新调整为所需的脚本部分(例如,使用excel)
  • 完成并存储脚本

  • 如果您需要能够处理可能突然改变的列等,那么在pig中可能没有好的方法。也许您可以在所有列中读取它(例如在R中)并在那里执行操作。

    我们使用ruby动态生成pig脚本,它工作得非常好。我不知道本地猪有什么办法来对付它。@Bridriver:谢谢!如何将列名传递给脚本?您是否将姓名列表存储在外部文件中并读取它?或者有没有一种从模式中动态获取列名的方法?我想可能您不理解我的意思。ruby代码编写pig脚本,然后发送给pig。如何生成列名取决于你正在做什么。StimNoT,如果你对100列做同样的事情,考虑不同的方式存储数据。如果它是以列表格式存储的,您可以通过分组来实现这一点。可能重复的