我在MongoDB集合中有两个Array[string]
列,现在我通过Scala UDF
函数将其组合如下:
def concat_array(arr1: mutable.WrappedArray[String],arr2:
mutable.WrappedArray[String]): mutable.WrappedArray[String] =
{
(arr1 ++ arr2)
}
注册UDF
函数后,我使用SparkSQL
spark.sql(("select concat_array(arr1,arr2) from table1")
返回相关数据,但是,我想更改结果以标记结果中的哪一项来自arr1
或arr2
。
能请您提供任何解决方案吗?
答案 0 :(得分:0)
def concat_array(arr1: mutable.WrappedArray[String],arr2:
mutable.WrappedArray[String]): mutable.WrappedArray[(String, Int)] =
{
(arr1.map(_ -> 1) ++ arr2.map(_ -> 2))
}
输出是一个元组数组,元素2指示源数组。