当前位置: 首页 > 知识库问答 >
问题:

当我们直接从数据帧[duplicate]中选择两列时,是否可以添加两列

姚永年
2023-03-14

我创建了一个数据

'df1=spark.read.format("csv").option("delimiter","|").load(file)'

现在我想从数据框中选择列

df1.select("col1","col2","col3")

这个很好用。但是我可以在同一个语句中包含两列吗。以COL1为年龄,COL2为第一名称,COL3为姓氏。我正在寻找下面提到的输出,包括名字和姓氏。我知道可以使用sparksql来完成。我想知道这可以在上面的df1中完成。select()语句。谢谢

col1  col2col3
23    JohnHarper
20    MarshallMathers

共有2个答案

颛孙晗昱
2023-03-14

你可以试试这样的

df1.select("col1",concat("col2","col3"))
丌官浩旷
2023-03-14

您可以使用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)
 类似资料: