如何在数据块中使用 Spark sql 连接 Spark 数据框列

Posted

技术标签:

【中文标题】如何在数据块中使用 Spark sql 连接 Spark 数据框列【英文标题】:How to concatenate spark dataframe columns using Spark sql in databricks 【发布时间】:2020-02-05 05:42:20 【问题描述】:

我的数据框中有两列名为“FirstName”和“LastName”,如何将这两列连接成一列。

  |Id  |FirstName|LastName|
  |  1 |    A    |   B    |
  |    |         |        |
  |    |         |        |

我想变成这样

|Id |FullName |
| 1 |    AB   |     
|   |         |       
|   |         | 

我的查询看起来像这样,但它会引发错误

val kgt=spark.sql("""
Select Id,FirstName+' '+ContactLastName AS FullName from tblAA """)

kgt.createOrReplaceTempView("NameTable")

【问题讨论】:

【参考方案1】:

我们使用 Spark SQL 解决方案:

spark.sql("select Id, CONCAT(FirstName,' ',LastName) as FullName from NameTable").show(false)

spark.sql( " select Id, FirstName || ' ' ||LastName as FullName from NameTable ").show(false)

【讨论】:

【参考方案2】:
from pyspark.sql import functions as F
df = df.withColumn('FullName', F.concat(F.col('First_name'), F.col('last_name')))

【讨论】:

虽然此代码可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。

以上是关于如何在数据块中使用 Spark sql 连接 Spark 数据框列的主要内容,如果未能解决你的问题,请参考以下文章

大数据(spark sql 和 spark dataframes 连接)

使用 spark sql 合并集类型列 [重复]

Spark-sql 数据砖中的变量动态分配值

如何对数据进行物理分区以避免 Spark SQL 连接中的洗牌

如何从 spark sql databricks 中的临时视图或等效视图中删除?

如何在 spark sql 连接条件中将字符串数据类型转换为日期:to_date 不起作用并且转换抛出错误