В объекте DataFrame в Apache Spark (я использую интерфейс Scala), если я повторяю его объекты Row, есть ли способ извлечь значения структуры по имени?Получить элементы структуры типа строки по имени в SPARK SCALA
Я использую приведенный ниже код для извлечения по имени, но я столкнулся с проблемой о том, как читать значение структуры.
Если значения были строкового типа, то мы могли бы сделать это:
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)
Почему вы делаете ДФ => рдд = > df? Похоже, ваше преобразование может быть выражено операциями DataFrame и избавит вас от многих проблем в процессе. – maasg
, потому что я должен выполнить некоторые вычисления по ряду строк, и мне требуется это преобразование для перемещения по строкам данных по строкам. – satyambansal117
Какие изрядные вычисления? – maasg