Legendes ich die Funktionalität des folgenden Code verstehen wollen:ein Stück Code in Scala
val newDataFrame = myDataFrame.withColumn("date", to_date(myDataFrame("start_date")))
.withColumn("column1", lit(1))
.select($"pk".as("id"), $"date", $"column1")
Meiner Meinung nach tut es die folgenden drei Schritte:
1) eine neue Spalte date
durch Umwandlung von myDataFrame("start_date")
in ein Datumsobjekt. In myDataFrame
hat die Spalte start_date
das folgende Format 2017-05-04 10:22:03.0
. Soweit ich verstehe, transformiert to_date
es automatisch in ein Datum ohne die Notwendigkeit, ein Format, z. yyyy-MM....
.
2) erstellt eine neue Spalte columns1
und füllt sie mit 1
aus.
3) Ich missverstehe diese Linie leicht select($"pk".as("id"), $"date", $"column1")
. Was bedeutet $
und warum 3 Spalten ausgewählt sind? Erzeugt es newDataFrame
mit nur 3 Spalten id
, date
und column1
?
$ ist implizit in sqlContexts und $ "pk" ist also eine Abkürzung äquivalent zu myDataFrame ("pk"), die die Spalte namens "pk" zurückgibt. .select hat eine Signatur, die die Spalte * akzeptiert. Sie übergeben also drei Spaltenparameter in der Anweisung .select –