2016-08-09 11 views
1

Ich bin neu bei Apache Pig. Ist es möglich, die Tasche mit dynamischen Säulen zu erstellen? Folgendes ist das Skript zum Beispiel.Dynamische Spalten für Beutel in Apache Schwein

A = LOAD 'student' USING PigStorage() AS (col1:chararray, col2:chararray, col3:chararray .......); 
B = FOREACH A GENERATE col1, col3; OR 
B = FOREACH A GENERATE col2, col3, col4; 

Kurz gesagt, die Liste der Spalten und Tasche zu erstellen. Ist es möglich und wie? Was ich hier brauche ist eine Möglichkeit, dynamische Spalten zu bekommen. so z.B. Jemand definiert mein Skript, um auf params = 'col1, col2, col4' zu laufen, dann sollte mein Skript fähig sein, diese Zeichenkette zu analysieren und sie zu benutzen, erhält die gewünschten colums.

Antwort

0

Ich kann Verwendung MACRO oder Parameter-Variable mit Skript für MACRO hier ist Beispiel

define dividend_analysis (daily, year, daily_symbol, daily_open, daily_close) 
returns analyzed { 
divs = load '/user/data/NYSE_dividends'as (exchange:chararray,  symbol:chararray, date:chararray, dividends:float); 
divisthisyear = filter divs by date matches '.*$year.*'; 
dailythisyear = filter $daily by date matches '.*$year.*'; 
jnd = join divisthisyear by symbol, dailythisyear by $daily_symbol; 
$analyzed = foreach jnd generate $1 ,$daily_close - $daily_open; }; 

daily = load '/user/data/NYSE_daily'as (exchange:chararray, symbol:chararray,  date:chararray, open:float, high:float, low:float, close:float, volume:int,  adj_close:float); 
results = dividend_analysis(daily, '2009', 'symbol', 'open', 'close'); 
0
A = LOAD 'student' using PigStorage(','); 

by this relation A contains all columns which has student file.You can access these columns by using sequence number like $0,$1,$2 
$0 --> First column 
$1 --> Second column 
$2 --> third column and so on 
+0

Was ich brauche, hier ist Weg, um dynamische Spalten vorschlagen. so z.B. Jemand definiert mein Skript, um auf params = 'col1, col2, col4' zu laufen, dann sollte mein Skript fähig sein, diese Zeichenkette zu analysieren und sie zu benutzen, erhält die gewünschten colums. –

Verwandte Themen