私は1つの列が整数の配列であるSparkデータフレームを持っています。列は、左外部結合から来ているため、NULL可能です。すべてのnull値を空の配列に変換したいので、後でnullを処理する必要はありません。Spark DataFrameでnull値を空の配列に変換します
が、私はそうのようにそれを行うことができると思った:
val myCol = df("myCol")
df.withColumn("myCol", when(myCol.isNull, Array[Int]()).otherwise(myCol))
しかし、これは、次の例外が発生:
java.lang.RuntimeException: Unsupported literal type class [I [[email protected]
at org.apache.spark.sql.catalyst.expressions.Literal$.apply(literals.scala:49)
at org.apache.spark.sql.functions$.lit(functions.scala:89)
at org.apache.spark.sql.functions$.when(functions.scala:778)
どうやら配列型はwhen
機能によってサポートされていません。 null値を変換する他の簡単な方法はありますか?
それはここで、関連性がある場合、この列のスキーマです:
|-- myCol: array (nullable = true)
| |-- element: integer (containsNull = false)
coalesce sql関数を参照してください。https://docs.oracle.com/database/121/SQLRF/functions033.htm#SQLRF00617 – gasparms