Ich habe einen Funken Datenrahmen df
. Gibt es eine Möglichkeit, unter Verwendung einer Liste dieser Spalten einige Spalten auszuwählen?Eine Liste aufladen, um mehrere Spalten aus einem Spark-Datenrahmen auszuwählen
scala> df.columns
res0: Array[String] = Array("a", "b", "c", "d")
Ich weiß, ich kann etwas wie df.select("b", "c")
tun. Aber angenommen, ich habe eine Liste mit ein paar Spaltennamen val cols = List("b", "c")
, gibt es eine Möglichkeit, dies an df.select zu übergeben? df.select(cols)
löst einen Fehler aus. So etwas wie df.select(*cols)
wie in Python
Dank! Lief wie am Schnürchen. Könnte man etwas mehr über die Syntax erklären? Was macht col.tail: _ *? – Ben
Ich denke ich verstehe jetzt. Der Schlüssel ist die Methodensignatur von select 'select (col: String, cols: String *)'. Der Eintrag 'cols: String *' benötigt eine variable Anzahl von Argumenten. ': _ *' entpackt Argumente, damit sie von diesem Argument behandelt werden können. Sehr ähnlich dem Entpacken in Python mit '* args'. Siehe [hier] (http://Stackoverflow.com/a/1660768/4096199) und [hier] (http://StackOverflow.com/Questions/6051302/what-does-colon-undunders-Star-Do-in- scala) für andere Beispiele. – Ben
Cool! Du hast es richtig gemacht :) Tut mir leid, ich habe beide Benachrichtigungen gerade jetzt, also konnte ich nicht früher antworten. :) –