Мне нужно создать DataFrame из существующего DataFrame, в котором мне нужно также изменить схему.
У меня есть DataFrame вроде:
+-----------+----------+-------------+
|Id |Position |playerName |
+-----------+-----------+------------+
|10125 |Forward |Messi |
|10126 |Forward |Ronaldo |
|10127 |Midfield |Xavi |
|10128 |Midfield |Neymar |
, и я создан с помощьюкласс кейса, приведенный ниже:
case class caseClass (
Id: Int = "",
Position : String = "" ,
playerName : String = ""
)
Теперь мне нужно сделать Имя игрока и Позиция в типе Структуры.
т.е.
Мне нужно создать еще один DataFrame со схемой,
root
| - Id: int (nullable = true)
| - playerDetails: struct (nullable = true)
|| --playername: строка (nullable = true)
|| --Position: string (nullable = true)
Я сделал следующий код, чтобы создать новый фрейм данных, ссылаясь на ссылку https://medium.com/@mrpowers/adding-structtype-columns-to-spark-dataframes-b44125409803
myschema is
List(
StructField("Id", IntegerType, true),
StructField("Position",StringType, true),
StructField("playerName", StringType,true)
)
Я попробовал следующий код
spark.sparkContext.parallelize(data),
myschema
)
, но не могу этого сделать.
Я видел похожий вопрос Изменить схему существующего фрейма данных , но яне могу понять решение.
Есть ли какое-либо решение для непосредственной реализации StructType внутри класса case?так что я думаю, что мне не нужно создавать собственную схему для создания значений типа структуры.