组合 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中文网其他相关文章!