Spalten im Apache Spark DataFrame verbinden
In Spark-Anwendungen erfordert die Verarbeitung strukturierter Daten häufig die Kombination mehrerer Spalten zu einem Ganzen. Eine häufige Aufgabe besteht darin, zwei oder mehr Spalten zu verbinden, um eine neue kombinierte Spalte zu erstellen. Spark SQL bietet praktische Mechanismen, um dies nahtlos zu erreichen.
Methode 1: Verwenden Sie die CONCAT-Funktion im Original-SQL
Für Benutzer, die mit unformatierten SQL-Abfragen arbeiten, kann die CONCAT-Funktion nützlich sein. Es ermöglicht Ihnen, mehrere Spalten mit Zeichenfolgen zu einer einzigen Zeichenfolge zu kombinieren.
Python:
<code class="language-python">df = sqlContext.createDataFrame([("foo", 1), ("bar", 2)], ("k", "v")) df.registerTempTable("df") sqlContext.sql("SELECT CONCAT(k, ' ', v) FROM df")</code>
Scala:
<code class="language-scala">import sqlContext.implicits._ val df = sc.parallelize(Seq(("foo", 1), ("bar", 2))).toDF("k", "v") df.registerTempTable("df") sqlContext.sql("SELECT CONCAT(k, ' ', v) FROM df")</code>
Methode 2: Verwenden der Concat-Funktion der DataFrame-API
Ab Spark 1.5.0 führt die DataFrame-API die Concat-Funktion ein, die eine elegante Möglichkeit zum Verketten von Spalten in der API bietet.
Python:
<code class="language-python">from pyspark.sql.functions import concat, col, lit df.select(concat(col("k"), lit(" "), col("v")))</code>
Scala:
<code class="language-scala">import org.apache.spark.sql.functions.{concat, lit} df.select(concat($"k", lit(" "), $"v"))</code>
Methode 3: Verwenden Sie die Funktion concat_ws, um das Trennzeichen anzupassen
Spark bietet außerdem die Funktion concat_ws, mit der Sie benutzerdefinierte Trennzeichen zwischen Verbindungszeichenfolgen angeben können.
Beispiel:
<code class="language-python"># 创建一个包含多个列的DataFrame df = spark.createDataFrame([ ("John", "Doe", "John Doe"), ("Jane", "Smith", "Jane Smith") ], ["first_name", "last_name", "full_name"]) # 使用自定义分隔符连接名字和姓氏 df = df.withColumn("full_name_with_comma", concat_ws(",", df.first_name, df.last_name))</code>
Das obige ist der detaillierte Inhalt vonWie verkette ich Spalten in Apache Spark DataFrames?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!