組合 Apache Spark DataFrame 中的欄位
Apache Spark 提供了多種在 DataFrame 中連接列的方法。
利用 SQL CONCAT 函數
對於直接 SQL 查詢,Spark 內建的 CONCAT
函數有助於列合併。
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>
利用 DataFrame API 的 concat 函數 (Spark 1.5.0 )
DataFrame API 為此任務提供了 concat
函數。
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>
使用 concat_ws 函數
concat_ws
函數提供了指定自訂分隔符號的優點。
Python 插圖:
<code class="language-python">from pyspark.sql.functions import concat_ws, lit df.select(concat_ws(" ", col("k"), lit(" "), col("v")))</code>
Scala 插圖:
<code class="language-scala">import org.apache.spark.sql.functions.{concat_ws, lit} df.select(concat_ws(" ", $"k", lit(" "), $"v"))</code>
這些技術可以在 Apache Spark DataFrames 中實現簡單的列串聯,對於各種資料操作任務來說非常有價值。
以上是如何連接 Apache Spark DataFrame 中的欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!