2017-07-30 71 views
1

我有一个Spark数据帧与具有array<struct<_1:long,_2:string>>数据类型列和下面的示例数据:星火:转换/ CONCAT行的WrappedArray为String

WrappedArray([Value,Title1], [Value,Title2], [Value,Title3]) 

我想这列从WrappedArray转换为单一String

这里是所期望的输出:

Value+Title1,Value+Title2,Value+Title3 

我尝试以下udf传递是c数据帧的olumn:

val f = (x:Seq[Row]) => x.mkString(",") 
sqlContext.udf.register("f", f) 

但结果是[Value,Title1],[Value,Title2],[Value,Title3]

回答

3

试试这个:

val f = (x:Seq[Row]) => x.map(row => "%s+%s".format(row.getString(0), 
row.getString(1))).mkString(",") 
+0

谢谢了。有用! – Ryan