part文件为空

bvhaajcl  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(350)

我在mapreduce模式下运行了一个示例pig脚本,它成功地运行了。
我的剧本:

allsales = load 'sales' as (name,price,country);
bigsales = filter allsales by price >999;
sortedbigsales = order bigsales by price desc;
store sortedbigsales into 'topsales';

现在,我正试图在eclipse中实现这一点(目前我正在使用库运行)。
一个疑问:pig本地模式意味着我们需要hadoop作为默认安装?
idlocal.java文件:

public class IdLocal {
  public static void main(String[] args) {
    try {
     PigServer pigServer = new PigServer("local");
     runIdQuery(pigServer, "/home/sreeveni/myfiles/pig/data/sales");
    } catch (Exception e) {
    }
  }
  public static void runIdQuery(PigServer pigServer, String inputFile) 
                      throws IOException {

  pigServer.registerQuery("allsales = load '" + inputFile+ "' as (name,price,country);");
  pigServer.registerQuery("bigsales = filter allsales by price >999;");
  pigServer.registerQuery("sortedbigsales = order bigsales by price desc;");
  pigServer.store("sortedbigsales","/home/sreeveni/myfiles/OUT/topsalesjava");
  }
}

控制台显示我成功了,但是我的部件文件是空的。为什么会这样?

gcuhipw9

gcuhipw91#

1) 本地模式pig并不意味着必须安装hadoop。您可以在没有hadoop和hdfs的情况下运行它。一切都将在您的机器上单线程执行,默认情况下,它应该从您的本地文件系统进行读/写。
2) 关于空输出,请确保输入文件存在于本地文件系统中,并且在“price”字段中的记录大于999。否则你可能会把它们都过滤掉。另外,pig默认为制表符分隔的文件。“输入文件”选项卡是否分开?如果不是这样,那么您的模式定义将使“name”字段保留文件中的整行,“price”和“country”将始终为空。
希望有帮助

相关问题