寻求帮助:
Data: map (nullable = true)
|-- key: string
|-- value: map (valueContainsNull = true)
| |-- key : string
| |-- value : string (valueContainsNull = true) reffer you
我给你下面的链接Passing a map with struct-type key into a Spark UDF,并创建了一个udf concat字符串:
val myUDF1 = udf((inputMapping:Map[String,Row]) => inputMapping
.map{case(key,value)=>(key, (value.getString(0),value.getString(1)))}
.map{ case (key,(i1,i2))=> (key,(i1 + i2)) }
)
df.withColumn("udfResult", myUDF($"Data")).show()
同样的事情,我想做的,但不是增加整数,我想删除键的值,这是字符串类型。我怎么能存档相同我尝试了这个,但得到错误导致:java.lang.ClassCastException:字符串类不能被强制转换为类org.apache. sparc.sql.Row(字符串类在加载程序“引导”的模块java.base中;行位于加载程序“app”的未命名模块中)
我想从外部Map的valemapType嵌套列中删除特定键:
Data: map (nullable = true)
|-- key: string
|--** value: map (valueContainsNull = true)**
| |-- key : string
| |-- value : string (valueContainsNull = true) reffer you
2条答案
按热度按时间kadbb4591#
欢迎使用StackOverflow。也许这个函数可以帮助:
考虑一个简单的 Dataframe (我从数据集创建它,因为它非常简单):
它是:
应用UDF:
它创建不带嵌套键的列:
o2gm4chl2#
你不需要使用UDF,因为它很昂贵,你可以使用map方法,我这里使用了Dataset,你可以使用data frame