[英]Get elements of type structure of row by name in SPARK SCALA
在Apache Spark中的DataFrame對象中(我使用的是Scala接口),如果我在其Row對象上進行迭代,是否有任何方法可以按名稱提取結構值?
我使用下面的代碼按名稱提取,但我面臨着如何讀取struct值的問題。
如果值是字符串類型,那么我們可以這樣做:
val resultDF=joinedDF.rdd.map{row=>
val id=row.getAs[Long]("id")
val values=row.getAs[String]("slotSize")
val feilds=row.getAs[String](values)
(id,values,feilds)
}.toDF("id","values","feilds")
但在我的情況下,值具有以下架構
v1: struct (nullable = true)
| |-- level1: string (nullable = true)
| |-- level2: string (nullable = true)
| |-- level3: string (nullable = true)
| |-- level4: string (nullable = true)
| |-- level5: string (nullable = true)
如果值具有上述結構,我應該用什么來代替這一行來使代碼工作。
row.getAs[String](values)
您可以訪問struct
元素我第一次提取的另一Row
(結構建模為另一Row
從頂層火花) Row
是這樣的:
val level1 = row.getAs[Row]("struct").getAs[String]("level1")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.