Я пытаюсь изменить тип данных столбца, присутствующего в кадре данных I, который я читаю из базы данных RDBMS.Для этого я получил схему кадра данных следующим образом:
val dataSchema = dataDF.schema
Чтобы увидеть схему кадра данных, я использовал следующий оператор:
println(dataSchema.schema)
Output: StructType(StructField(je_header_id,LongType,true), StructField(je_line_num,LongType,true), StructField(last_update_date,TimestampType,true), StructField(last_updated_by,DecimalType(15,0),true), StructField(creation_date,TimestampType,true), StructField(created_by,DecimalType(15,0),true), StructField(created_by_name,StringType,true), StructField(entered_dr,DecimalType(38,30),true), StructField(entered_cr,DecimalType(38,30),true))
Мои требованиянайти DecimalType и изменить его на DoubleType из приведенной выше схемы.Я могу получить имя столбца и типы данных, используя: dataSchema.dtype, но он дает мне типы данных в формате ((columnName1, column datatype),(columnName2, column datatype)....(columnNameN, column datatype))
Я пытаюсь найти способ разобрать StructType и изменить схему в dataSchemaНапрасно.
Может кто-нибудь сообщить мне, если есть способ разобрать StructType, чтобы я мог изменить тип данных в соответствии с моим требованием и получить в следующем формате
StructType(StructField(je_header_id,LongType,true), StructField(je_line_num,LongType,true), StructField(last_update_date,TimestampType,true), StructField(last_updated_by,DoubleType,true), StructField(creation_date,TimestampType,true), StructField(created_by,DoubleType,true), StructField(created_by_name,StringType,true), StructField(entered_dr,DoubleType,true), StructField(entered_cr,DoubleType,true))