簡體   English   中英

Spark:使用 UDF 在 Dataframe 中創建數組列

[英]Spark: Using a UDF to create an Array column in a Dataframe

我有一個簡單的 function,它在一個字段中使用一些 XML,解析值,並返回一個列表:

<data>
   <datas a="1" b="2" c="3">
   <datas a="2" b="3" c="2">
</data>

成為嵌套列表 [[1,2,3],[2,3,2]]

我已將其設為 udf,我正在撥打我的 dataframe:

myudf=udf(myparser)
df2=df1.withColumn("newDataColumn",myudf(df1["xmldatafield"]))

這有效。 除了 newDataColumn 的類型是 STRING 而不是 Array。 所以我不能在其上使用任何 sql 數組函數來訪問或處理單個元素。

我已經在 python 中確認 function 正在返回一個列表類型。

知道我做錯了什么或者我怎么能把它變成數組列類型?

我的一個朋友剛剛告訴我,解決方案是將數據類型傳遞給 UDF function。Duh

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM