Erstellen Sie Spalten basierend auf der Anzahl jedes eindeutigen Werts einer Spalte in Pig

Grün

Ich habe einen Datensatz wie:

UserID Item EventType
  001   A     Buy
  001   B     Sell
  031   A     Sell
  008   C     Buy
  001   C     Buy
  001   A     Buy
  008   C     Sell

Wie kann ich die EventType-Spalte für jedes Ereignis in eine andere Spalte aufteilen? Das heißt, ich möchte zwei neue Spalten EventType_Buy und EventType_Sell, die die Anzahl der Vorkommen dieser Ereignisse für jedes UserID- und Item-Paar enthalten.

Die Ausgabe sollte also ungefähr so ​​aussehen:

UserID Item EventType_Buy EventType_Sell
  001   A         2              0
  001   B         0              1  
  001   C         1              0  
  008   C         1              1  
  031   A         0              1          

Ich bin nicht so sehr an der Sortierung interessiert, aber ich plane, diese Daten später in R zu verwenden, daher möchte ich Hilfe beim Versuch, diese Aufteilung in Spaltenzahlen durchzuführen.

Ich habe versucht, separate Objekte für jeden Ereignistyp und jede Gruppierung nach Benutzer-ID und Element zu erstellen, die Anzahl zu generieren und zu versuchen, diese Objekte zu verbinden, aber ich habe nicht viel Erfolg.

Murali Rao

Ref: https://pig.apache.org/docs/r0.14.0/basic.html#foreach

Schweineskript:

input_data = LOAD 'input.csv' USING PigStorage(',') AS (user_id:chararray,item:chararray,event_type:chararray);

req_stats = FOREACH(GROUP input_data BY (user_id,item)) {
                buy_bag = FILTER input_data BY event_type == 'Buy';
                sell_bag = FILTER input_data BY event_type == 'Sell';
                GENERATE FLATTEN(group) AS (user_id,item), COUNT(buy_bag) AS event_type_buy, COUNT(sell_bag) AS event_type_sell; 
};

DUMP req_stats;

Eingabe:

001,A,Buy
001,B,Sell
031,A,Sell
008,C,Buy
001,C,Buy
001,A,Buy
008,C,Sell

Ausgabe: DUMP req_stats

(001,A,2,0)
(001,B,0,1)
(001,C,1,0)
(008,C,1,1)
(031,A,0,1)

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Erstellen Sie groupby basierend auf der Bezeichnung einer Spalte in Python

Erstellen Sie eine Spalte mit eindeutigen Bezeichnern basierend auf einer anderen Spalte in data.table

Zählen Sie die Anzahl der eindeutigen Zeilen basierend auf zwei Spalten nach Gruppe

Hinzufügen einer Spalte basierend auf der Anzahl und der eindeutigen Anzahl in Python

Erstellen Sie eine neue Spalte mit einem eindeutigen Bezeichner basierend auf einer Spalte mit Duplikaten

Gruppen basierend auf der eindeutigen Anzahl einer anderen Spalte

Liste mit eindeutigen Namen aus mehreren Spalten erstellen, basierend auf einer anderen Spalte?

Löschen Sie Zeilen mit Duplikaten basierend auf einer Spalte, die von der Anzahl der NAs in verschiedenen Spalten abhängt

Hive: Füllen Sie andere Spalten basierend auf dem eindeutigen Wert in einer bestimmten Spalte

Erstellen eines Werts in einer Spalte basierend auf der Zeichenfolgenübereinstimmung in einer von mehreren Spalten

Erstellen Sie Spalten basierend auf einer kategorialen Spalte und Werten aus einer anderen Spalte

Erstellen Sie Spalten basierend auf der Anzahl in data.table

Erstellen Sie eine Hot-Encoding-Spalte basierend auf einem Teil des Werts der anderen Spalte

Summieren Sie die Anzahl der Booleschen Werte (basierend auf Wertgruppen in verschiedenen Spalten) in einer neuen Spalte

Gruppieren und sortieren Sie basierend auf der Anzahl des gleichen Werts einer Spalte und sortieren Sie eine andere Spalte innerhalb dieser Gruppen

SQL Server: Erstellen Sie eine Sequenzspalte basierend auf einer nicht eindeutigen Spalte

Erstellen Sie eine neue Spalte mit den Indizes der größten Anzahl basierend auf den Werten einer anderen Spalte

Erstellen Sie eine neue Z-Score-Spalte basierend auf eindeutigen Textwerten in einer vorhandenen Spalte

Erstellen Sie mehrere Spalten in R basierend auf einer anderen Spalte

Erstellen Sie eine Spalte in Pandas, die die Anzahl der eindeutigen Werte in einer anderen Spalte zählt

Konvertieren einer einzelnen Spalte in mehrere Spalten basierend auf eindeutigen Werten

Python Pandas: Erstellen Sie eine neue Spalte mit Mindestwerten basierend auf eindeutigen Bezeichnern in anderen Spalten

Rufen Sie die Anzahl der Vorkommen jedes eindeutigen Werts ab

Erstellen Sie Spalten auf der Grundlage einer Spalte

So zählen Sie die Anzahl der eindeutigen Werte in einer Spalte basierend auf den Werten in einer anderen Spalte

Pandas: Erstellen Sie Spalten basierend auf eindeutigen Werten in Spalte

Erstellen Sie eine neue Spalte basierend auf kumulativen Vorkommen eines bestimmten Werts in einer anderen Spalte Pandas

Pandas: Erstellen Sie Spalten basierend auf Werten einer anderen Spalte, wenn der Zeichenfolgenwert aus der 3. Spalte stammt

Erstellen Sie neue Spalten basierend auf der Häufigkeit des Arrays aus einer Spalte

TOP Liste

heißlabel

Archiv