给定一个带有第一行的csv文件可以作为标题,如何使用这些标题在Pig中动态加载字段名称?即。
id,year,total
1,1999,190
2,1998,20
a = LOAD '/path/to/file.csv' USING PigStorage() AS --use first row as field names
> describe a;
> id:bytearray,year:bytearray,total:bytearray
答案 0 :(得分:2)
由于这是一个CSV文件,并且您希望将第一行用作标题,因此您应该使用CSVLoader()
。它会将第一行视为标题。你的脚本就是这样的。
--Register the piggybank jar
REGISTER piggybank.jar
define CSVLoader org.apache.pig.piggybank.storage.CSVLoader();
A = LOAD '/path/to/file.csv' using CSVLoader AS(id:int,year:chararray,total:int);