2015-10-11 1 views
0

Когда я пытаюсь объединить два строковых столбца или литерал со строковым столбцом, используя функцию «+», результат всегда равен нулю.Как конкатенация двух столбцов строки или столбца литерала в строку с использованием 1.4 DF API (Scala)

auction.select(col("item")) show 

+----+ 
|item| 
+----+ 
|xbox| 
+----+ 

Таким образом, колонка в порядке. Но оператор + всегда дает нуль. Я не могу найти функцию concat в API 1.4.

auction.select(col("item") + col("item")) show 

+-------------+ 
|(item + item)| 
+-------------+ 
|   null| 
+-------------+ 

То же самое верно и в буквальном

auction.select(lit("Blue ") + col("item")) show 


+--------------+ 
|(Blue + item)| 
+--------------+ 
|   null| 
+--------------+ 

ответ

0

Вы всегда можете зарегистрировать свой DataFrame в виде таблицы, а затем запросить его через SQL:

auction.registerTempTable("auction") 
val concatenated = sqlContext.sql("SELECT CONCAT(item, ' ', item) FROM auction")