2016-07-10 19 views
-3

Bitte unter dem psuedocode finden:Wie fügt man die RDD-Daten in einen Datenrahmen in pyspark ein?

Quelle Datenrahmen mit 5 Spalten

einen Zieldatenrahmen mit Schema (6 Spalten) Erstellen

Für Artikel in source_dataframe: #adding eine Spalte auf die Liste kauft Überprüfung item.coulmn2 list = [item.column1, item.column2, newcolumn] #eine rdd aus dieser liste erstellen #now ich muss diese rdd zu einem zieldatenframe hinzufügen ?????

Antwort

0

Sie könnten Ihre Frage auf jeden Fall genauer erklären oder einen Beispielcode geben. Ich bin interessiert, wie andere das lösen werden. Meine vorgeschlagene Lösung ist diese:

df = (
    sc.parallelize([ 
     (134, "2016-07-02 12:01:40"), 
     (134, "2016-07-02 12:21:23"), 
     (125, "2016-07-02 13:22:56"), 
     (125, "2016-07-02 13:27:07") 
     ]).toDF(["itemid", "timestamp"]) 
) 

rdd = df.map(lambda x: (x[0], x[1], 10)) 
df2 = rdd.toDF(["itemid", "timestamp", "newCol"]) 

df3 = df.join(df2, df.itemid == df2.itemid and df.timestamp == df2.timestamp, "inner").drop(df2.itemid).drop(df2.timestamp) 

Ich konvertiere die RDD zu einem Dataframe. Danach schließe ich beide Dataframes an, die einige Spalten duplizieren. Endlich lasse ich diese doppelten Spalten fallen.

+0

Vielen Dank !!! Mein Szenario ist ein bisschen kompliziert, aber das hat das Problem gelöst. Für jetzt, werde ich die Frage mit mehr Details stellen. –