Headers 在 Pig 输出中
Headers in Pig Output
我写了一个成功的脚本来计算行人的总步数,以及他们的最高步数。我没有得到的是在 Pig 输出中生成 headers,因此输出看起来整洁干净。有什么方法可以在写入输出时产生 headers 。以下是我的代码,
register 'piggybank-0.15.0.jar';
DEFINE CSVLoader org.apache.pig.piggybank.storage.CSVLoader();
part1 = LOAD '/home/cloudera/Pedestrian_Counts.csv' using CSVLoader(',') as (date_time, sensor_id: int, sensor_name: chararray, hourly_counts: int);
part2 = GROUP part1 BY (sensor_id, sensor_name);
part3 = FOREACH part2 GENERATE FLATTEN(group) AS (sensor_id, sensor_name), SUM(part1.hourly_counts), MAX(part1.hourly_counts);
STORE part3 into '/home/cloudera/pedestrian_result' using PigStorage('\t');
我输出的前5行如下,
1 Bourke Street Mall (North) 49591633 5573
2 Bourke Street Mall (South) 67759939 7035
3 Melbourne Central 70973929 5890
4 Town Hall (West) 90274498 8052
5 Princes Bridge 58752043 7391
我们可以在写入输出时放置headers吗?提前致谢。
要么将所有部分文件数据合并到本地文件系统中的文件中,其中包含头信息,要么使用 hive table 来存储此 pig 脚本的输出。
使用 Hive table 存储输出将有自己的架构。
您应该使用 Hcat 访问 Pig 中的 Hive。
我写了一个成功的脚本来计算行人的总步数,以及他们的最高步数。我没有得到的是在 Pig 输出中生成 headers,因此输出看起来整洁干净。有什么方法可以在写入输出时产生 headers 。以下是我的代码,
register 'piggybank-0.15.0.jar';
DEFINE CSVLoader org.apache.pig.piggybank.storage.CSVLoader();
part1 = LOAD '/home/cloudera/Pedestrian_Counts.csv' using CSVLoader(',') as (date_time, sensor_id: int, sensor_name: chararray, hourly_counts: int);
part2 = GROUP part1 BY (sensor_id, sensor_name);
part3 = FOREACH part2 GENERATE FLATTEN(group) AS (sensor_id, sensor_name), SUM(part1.hourly_counts), MAX(part1.hourly_counts);
STORE part3 into '/home/cloudera/pedestrian_result' using PigStorage('\t');
我输出的前5行如下,
1 Bourke Street Mall (North) 49591633 5573
2 Bourke Street Mall (South) 67759939 7035
3 Melbourne Central 70973929 5890
4 Town Hall (West) 90274498 8052
5 Princes Bridge 58752043 7391
我们可以在写入输出时放置headers吗?提前致谢。
要么将所有部分文件数据合并到本地文件系统中的文件中,其中包含头信息,要么使用 hive table 来存储此 pig 脚本的输出。
使用 Hive table 存储输出将有自己的架构。
您应该使用 Hcat 访问 Pig 中的 Hive。