Я новичок и в Scala, и в Spark. Я пытаюсь преобразовать входные данные, считанные из файлов, как Double в Float (что безопасно в этом приложении), чтобы уменьшить использование памяти. Я смог сделать это с помощью столбца Double.
Текущий подход для одного элемента:
import org.apache.spark.sql.functions.{col, udf}
val tcast = udf((s: Double) => s.toFloat)
val myDF = Seq(
(1.0, Array(0.1, 2.1, 1.2)),
(8.0, Array(1.1, 2.1, 3.2)),
(9.0, Array(1.1, 1.1, 2.2))
).toDF("time", "crds")
myDF.withColumn("timeF", tcast(col("time"))).drop("time").withColumnRenamed("timeF", "time").show
myDF.withColumn("timeF", tcast(col("time"))).drop("time").withColumnRenamed("timeF", "time").schema
Но в настоящее время застрял с преобразованием массива двойных чисел в числа с плавающей точкой. Любая помощь будет оценена.