ich nächsten Datenrahmen habe:UDF-Funktion für Datentyp Guss, Scala
df.show()
+---------------+----+
| x| num|
+---------------+----+
|[0.1, 0.2, 0.3]| 0|
|[0.3, 0.1, 0.1]| 1|
|[0.2, 0.1, 0.2]| 2|
+---------------+----+
Dieser Datenrahmen hat Datentypen von Spalten folgen:
df.printSchema
root
|-- x: array (nullable = true)
| |-- element: double (containsNull = true)
|-- num: long (nullable = true)
Ich versuche, innerhalb von Datenrahmen zu dem FloatArray derzeit die DoubleArray zu konvertieren . Ich mache es mit der nächsten Anweisung von udf:
val toFloat = udf[(val line: Seq[Double]) => line.map(_.toFloat)]
val test = df.withColumn("testX", toFloat(df("x")))
Dieser Code funktioniert zur Zeit nicht. Kann jemand mit mir die Lösung teilen, wie man das Array ändert Typ in Dataframe?
Was ich will, ist:
df.printSchema
root
|-- x: array (nullable = true)
| |-- element: float (containsNull = true)
|-- num: long (nullable = true)
Diese Frage beruht auf der Frage How tho change the simple DataType in Spark SQL's DataFrame
@cheseaus, vielen Dank. Ich wusste nicht, dass Val überflüssig ist und Klammern falsch sind. Ich lerne gerade jetzt udf Syntax und Verwendung – Guforu