Spark SQL将Array [string]与标记结合在一起

时间:2018-10-03 08:02:37

标签: scala apache-spark-sql

我在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") 

返回相关数据,但是,我想更改结果以标记结果中的哪一项来自arr1arr2

能请您提供任何解决方案吗?

1 个答案:

答案 0 :(得分:0)

def concat_array(arr1: mutable.WrappedArray[String],arr2: 
       mutable.WrappedArray[String]): mutable.WrappedArray[(String, Int)] =                
          {
             (arr1.map(_ -> 1) ++ arr2.map(_ -> 2))
          }

输出是一个元组数组,元素2指示源数组。