如何将字符串连接到Spark中的列?

时间:2018-02-07 02:31:58

标签: scala apache-spark apache-spark-sql concatenation

我有以下数据,并希望获得带有文本前缀的结果:

输入数据帧:

sk            id       
2306220722    117738

当前代码:

df.withColumn("Remarks", concat_ws("MCA", col("ID")))

预期产出:

sk           id      Remarks  
2306220722   117738  MCA 117738

我想在id列前加上" MCA"并将结果字符串添加到Remarks列。

2 个答案:

答案 0 :(得分:0)

只需将concat命令与lit结合使用即可。 lit将获取一个值并生成一个只包含此值的列,它可以是字符串,双精度等。

val df2 = df.withColumn("Remarks", concat(lit("MCA "), col("id")))

在问题中使用示例数据框并运行df2.show()给出

+----------+------+----------+
|        sk|    id|   Remarks|
+----------+------+----------+
|2306220722|117738|MCA 117738|
+----------+------+----------+

答案 1 :(得分:0)

数据集 data1= data.withColumn("Name", functions.concat(functions.lit("SAR "),functions.col("Name")) ).show();

+---------+------------+---------+
|     Name|STRING_VALUE|NUM_VALUE|
+---------+------------+---------+
|SAR name2|      value2|        2|
|SAR name1|      value1|        1|
|SAR name1|      value1|        1|
|SAR name2|      value2|        2|
+---------+------------+---------+