0
私は次のデータフレームを持っている:UDF関数、スカラ座
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|
+---------------+----+
このデータフレームは、列のデータ型に従っています
df.printSchema
root
|-- x: array (nullable = true)
| |-- element: double (containsNull = true)
|-- num: long (nullable = true)
私はFloatArrayにデータフレームの内側に、現在DoubleArrayを変換しよう。私はudfの次の声明でそれを行います:
val toFloat = udf[(val line: Seq[Double]) => line.map(_.toFloat)]
val test = df.withColumn("testX", toFloat(df("x")))
このコードは現在動作していません。誰も私のソリューションを共有することができますどのように配列を変更するDataFrameのinseide型?私が欲しいもの
は次のとおりです。
df.printSchema
root
|-- x: array (nullable = true)
| |-- element: float (containsNull = true)
|-- num: long (nullable = true)
この質問は、質問How tho change the simple DataType in Spark SQL's DataFrame
@cheseaus、ありがとうございます。私はvalが冗長で括弧が偽であることを知らなかった。私は今udfの構文と使い方を学びます – Guforu