如何在spark中的数据框中连接字符串和列?

时间:2016-12-10 02:24:18

标签: apache-spark dataframe spark-dataframe

我今天的日期是一个字符串。我需要将它与作为数据帧中的列存在的时间值连接起来。

当我尝试这个时,我得到String Index out of bounds例外。

我的代码:

val todaydate = LocalDate.now().toString()
println(todaydate)  // o/p: 2016-12-10

val todayrec_cutoff = todaydate + (" ") + df.col("colname")

预期产出:

2016-12-10 05:00 
2016-12-10 22:30

2 个答案:

答案 0 :(得分:1)

你可以像下面这样做。

+----------------+
|        datetime|
+----------------+
|2016-12-10 05:00|
|2016-12-10 22:30|
+----------------+

这会给你

{{1}}

答案 1 :(得分:1)

**Please refer to below Scala code for string concat in prefix and postfix way.**


import org.apache.spark.sql.functions._
val empDF =  MongoSpark.load(spark, readConfig) //dataframe empDF is loaded from Mongo DB using MongoSpark 

val prefixVal= "PrefixArkay " //variable string
val postfixVal= " PostfixArkay"

//Prefix
val finalPreDF = ipDF.withColumn("EMP", concat(lit(prefix),empDF.col("EMP")) )
println("finalPreDF.show-> " + finalPreDF.show())

//Output will be as below
+-------------------+
|                EMP|
+-------------------+
|PrefixArkay DineshS|
|+------------------+


val finalPostDF = ipDF.withColumn("EMP", concat(empDF.col("EMP"),lit(postfixVal)) )
println("finalPostDF.show-> " + finalPostDF .show())

//Output will be as below
+--------------------+
|                 EMP|
+--------------------+
|DineshS PostfixArkay|
|+-------------------+