2016-09-09 3 views
0

Ich habe eine Tabelle, die Mitarbeiterdetails und ein anderes Tabellenprojekt, das die Projektdetails und Mitarbeiter-ID zugewiesen hat.Spark Scala Dataframe beitreten und ändern

Mitarbeiter

EmployeeName|Id|Address|Assigned 
Joan|101|xxxx|y 

Projekt

ProjectCode|Number of days|Employee 
XX1223|24|101 

ich eine CSV-Datei, die die Mitarbeiterdaten in der Mitarbeitertabelle geladen werden. Während die Mitarbeiterdaten Laden

  1. Ich muss feststellen, ob seine Mitarbeiter-ID an die Projekttabelle zugeordnet:
    • , wenn der Mitarbeiter-ID in der Projekttabelle vorhanden ist, legen Sie y im Employee Assigned Tabelle.
    • Wenn nicht, fügen Sie n in Assigned in der Employee-Tabelle ein.

Ich habe einen Datenrahmen für Mitarbeiter als, var employeeDF = Employee_TABLE Und var employeeAssignedDF = Employee_Join_Project

Im Moment ich Mitarbeitereinsatz zuerst Sie dann die Verbindung und dann aktualisieren Mitarbeiter wieder. Aber ich kann die employeeDF.except (employeeAssignedDF) tun, die eine minimale Anzahl von Zeilen haben wird.

  1. Ist es möglich, einige der Datenrahmenspalte allein zu ändern?
  2. Ich möchte nur einmal in die Tabelle einfügen, also wenn ich beitreten und die Ausnahme mache, sollte ich alle Datensätze haben, die in DB eingefügt werden können. Ist das machbar?

Dank

Antwort

0

du versuchen könnte, aber nicht sicher, ob dies Ihr Problem oder nicht lösen konnte -

val newDf = df.withColumn("Column", when(CONDITION, 'Y').otherwise('N')) 

Sie auch jede Methode am Ort der „wenn (ZUSTAND verwenden könnte, 'Y') "

+0

Kann hier ein Wert angegeben werden? Wie, df.withColumn ("Zugewiesen", "Y")? – ashK

Verwandte Themen