如何使用标题(第一行)作为Pig中的字段名称

Dev*_*vEx 5 hadoop apache-pig

给定第一行的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 
Run Code Online (Sandbox Code Playgroud)

San*_*ngh 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);
Run Code Online (Sandbox Code Playgroud)

  • 我的意思是猪模式中的字段名称。我不是指跳过标题。我的意思是是否可以使用从标头生成的模式加载 csv 文件? (3认同)