连接 Apache Spark DataFrame 中的列

2024-01-03

我们如何连接 Apache Spark DataFrame 中的两列? Spark SQL中有没有我们可以使用的函数?


通过原始 SQL,您可以使用CONCAT:

  • 在Python中

    df = sqlContext.createDataFrame([("foo", 1), ("bar", 2)], ("k", "v"))
    df.registerTempTable("df")
    sqlContext.sql("SELECT CONCAT(k, ' ',  v) FROM df")
    
  • In 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")
    

从 Spark 1.5.0 开始你可以使用concat使用 DataFrame API 的函数:

  • 在Python中:

    from pyspark.sql.functions import concat, col, lit
    
    df.select(concat(col("k"), lit(" "), col("v")))
    
  • 在斯卡拉中:

    import org.apache.spark.sql.functions.{concat, lit}
    
    df.select(concat($"k", lit(" "), $"v"))
    

还有concat_ws函数将字符串分隔符作为第一个参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

连接 Apache Spark DataFrame 中的列 的相关文章

随机推荐