我正在运行猪作业来处理数据并将结果存储为镶木地板文件。现在我必须根据存在的任何列对该镶木地板文件进行分区。有没有办法实现这个目标?
答案 0 :(得分:1)
是的,有一种方法:PigMultistrorer。
这是一个可以注册的java UDF: https://github.com/saikocat/parquet-mr-contrib/blob/master/parquet-pig-contrib/src/main/java/parquet/pig/ParquetMultiStorer.java
您可以将特定字段作为多重参数的参数传递,它将执行此字段后面的分区。
当我测试它时,我遇到了一些性能问题(很长的运行时间),所以我决定使用简单的多层存储(不带镶木地板)。那时速度更快。如果遇到同样的问题,请查看此链接。
https://pig.apache.org/docs/r0.8.1/api/org/apache/pig/piggybank/storage/MultiStorage.html