Spark gibt mehrere Spaltenbedingungen für den Datenrahmen-Join an
Geben wie die Spalte Bedingungen bei der Teilnahme an zwei dataframes. Zum Beispiel möchte ich Folgendes ausführen :
val Lead_all = Leads.join(Utm_Master,
Leaddetails.columns("LeadSource","Utm_Source","Utm_Medium","Utm_Campaign") ==
Utm_Master.columns("LeadSource","Utm_Source","Utm_Medium","Utm_Campaign"),
"left")
Will ich erst beitreten, wenn diese Spalten übereinstimmen. Aber oben-syntax ist nicht gültig, da cols dauert nur eine Zeichenfolge. So, wie bekomme ich, was ich will.
InformationsquelleAutor der Frage user568109 | 2015-07-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine Spark - Spalte/Ausdruck-API-beitreten für diesen Fall:
Den
<=>
operator im Beispiel bedeutet "Gleichheit testen, ist sicher für null-Werte".Den Unterschied mit einfachen Gleichheit testen (
===
) ist, dass die erste ist sicher zu verwenden, wenn die Spalten können null-Werte.InformationsquelleAutor der Antwort rchukh
Als der Spark version 1.5.0 (derzeit unveröffentlicht), können Sie sich auf mehrere DataFrame Spalten. Finden Sie SPARK-7990: Hinzufügen von Methoden zu erleichtern equi-join auf mehrere join-Schlüssel.
Python
Scala
Die Frage gestellt, für ein Scala Antwort, aber ich glaube nicht, verwenden Scala. Hier ist meine beste Vermutung....
InformationsquelleAutor der Antwort dnlbrky
Eine Sache, die Sie tun können, ist die Verwendung von raw-SQL:
InformationsquelleAutor der Antwort
In Pyspark können Sie einfach angeben, jede Bedingung separat:
Nur sicher sein, verwenden Sie die Operatoren und Klammern richtig.
InformationsquelleAutor der Antwort Patricia F.
Scala:
Zu machen, der groß-und Kleinschreibung,
dann verwenden Sie einfach
lower(value)
im Zustand der join-Methode.ZB:
dataFrame.filter(lower(dataFrame.col("vendor")).equalTo("fortinet"))
InformationsquelleAutor der Antwort Ani Menon
Spark SQL unterstützt join-Tupel von Spalten, wenn in Klammern, wie
das ist ein Weg, der kürzer als die Angabe von gleichen Ausdrücken (=) für jedes paar von Spalten verbunden durch "UND"s.
Beispiel:
statt
weniger lesbar zu besonders, wenn die Liste der Spalten ist groß und möchten Sie den Umgang mit Null-Werte leicht.
InformationsquelleAutor der Antwort Tagar
Den
===
Optionen geben mir duplizierte Spalten. Also ich benutzeSeq
statt.Natürlich funktioniert dies nur, wenn die Namen der beitretenden Spalten sind die gleichen.
InformationsquelleAutor der Antwort Climbs_lika_Spyder