だが、私はこのようになりますデータフレームがあるとしましょう爆発:データフレームスパークScalaのJSON配列
+--------------------+--------------------+--------------------------------------------------------------+
| id | Name | Payment|
+--------------------+--------------------+--------------------------------------------------------------+
| 1 | James |[ {"@id": 1, "currency":"GBP"},{"@id": 2, "currency": "USD"} ]|
+--------------------+--------------------+--------------------------------------------------------------+
とスキーマがある:私は上記の爆発することができますどのように
ルート
|-- id: integer (nullable = true)
|-- Name: string (nullable = true)
|-- Payment: string (nullable = true)
を以下のJSON配列:
+--------------------+--------------------+-------------------------------+
| id | Name | Payment|
+--------------------+--------------------+-------------------------------+
| 1 | James | {"@id":1, "currency":"GBP"} |
+--------------------+--------------------+-------------------------------+
| 1 | James | {"@id":2, "currency":"USD"} |
+--------------------+--------------------+-------------------------------+
私は以下のような分解機能を使用しようとしていますが、機能しません。それは文字列型を分解できないというエラーを出しており、マップや配列のいずれかを期待しています。これは、スキーマが配列/マップではなく文字列であることを示しているので、意味がありますが、これを適切な形式に変換する方法がわかりません。
val newDF = dataframe.withColumn("nestedPayment", explode(dataframe.col("Payment")))
ご協力いただきありがとうございます。
は 'Payment'ではありません'struct'ですか? – mtoto