我创建了一个数据框
'df1=spark.read.format("csv").option("delimiter","|").load(file)'
现在我要从该数据框中选择列
df1.select("col1","col2","col3")
这很好。但是我可以在同一条语句中合并两列。假设col1为age,col2为firstname,col3为lastname。我正在寻找以下将姓氏和名字结合在一起的输出。我知道可以使用sparksql完成。我想知道这可以在上面的df1.select()语句中完成。谢谢
col1 col2col3
23 JohnHarper
20 MarshallMathers
答案 0 :(得分:0)
您可以尝试这样的事情
df1.select("col1",concat("col2","col3"))
答案 1 :(得分:0)
您可以将concat
函数用作
from pyspark.sql.functions import *
df1.select("col1",concat("col2","col3").alias("col2col3")).show(truncate=False)
或将concat_ws
用作
df1.select("col1",concat_ws("", "col2","col3").alias("col2col3")).show(truncate=False)
或者您可以将udf
函数用作
from pyspark.sql.functions import *
from pyspark.sql.types import *
@udf(StringType())
def concatenating(x, y):
return "".join([x,y])
df1.select("col1", concatenating(col("col2"),col("col3")).alias("col2col3")).show(truncate=False)