Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何使用自定义键值名称将映射列转换为结构类型?_Scala_Apache Spark_Apache Spark Sql - Fatal编程技术网

Scala 如何使用自定义键值名称将映射列转换为结构类型?

Scala 如何使用自定义键值名称将映射列转换为结构类型?,scala,apache-spark,apache-spark-sql,Scala,Apache Spark,Apache Spark Sql,我有一个UDF,它使用scala内置的toArray函数将映射(在本例中为String->String)转换为数组 val toArray = udf((vs: Map[String, String]) => vs.toArray) 但是,数组结构的元组键名为\u 1,值名为\u 2 如何更改UDF定义,使键名为“键”,值名为“值”,作为UDF定义的一部分 [{"_1":"aKey","_2":"aValue"}] 到 您可以使用一个类: 案例类别KV(键:串,值:串) val to

我有一个UDF,它使用scala内置的
toArray
函数将映射(在本例中为String->String)转换为数组

val toArray = udf((vs: Map[String, String]) => vs.toArray)
但是,数组结构的元组键名为
\u 1
,值名为
\u 2

如何更改UDF定义,使键名为“键”,值名为“值”,作为UDF定义的一部分

[{"_1":"aKey","_2":"aValue"}] 

您可以使用一个类:

案例类别KV(键:串,值:串) val toArray=udf((vs:Map[String,String])=>vs.Map{ 外壳(k,v)=>KV(k,v) }(托雷先生)
Hi@user8098908,映射本身可以为null-这会引发null指针异常吗?是否应该对此进行检查?
[{"key":"aKey","value":"aValue"}]