2016-04-13 11 views
0

JSONオブジェクトを含むデータフレームにカラムがあります。私のデータフレームの各行について、JSONを抽出して解析し、特定のフィールドを取り出したいと思います。一旦抽出されると、新しい列要素として行にフィールドを追加したいと思います。Explode Spark JSONを含むDataframeカラム

私は、データフレーム上で利用できるだけでなくforeach()flatMap()map()が、この種の処理に適している識別することができていないようexplode()方法を見てきました。

答えて

0

地図が必要な場合があります。これを使用すると、jsonを解析し、必要なフィールドを選択し、これらの追加の列を使用して新しい行を戻すことができます。

マップは一般に、1:1のユーザー定義関数(たとえば、各入力行に1つの出力行)で使用されます。フラットマップは、1:n(各行は任意の数の行を返すことがあります)のユーザ定義関数に使用されます。

+0

David、チップのおかげで。マップは1:1であるにもかかわらず、行の長さが一貫していると予想されますか? – dmux

+0

出力行は、入力行と同じ長さである必要はありません。しかし、データフレームでは、すべての行が同じフィールドを持たなければなりません(出力行はすべて同じ構造でなければならず同じ長さでなければなりません) – David

+0

最初に 'RDD'に' map'して変換しませんか? 'withColumn'と' UDF'を使うだけで変換をスキップすることができます。 –

関連する問題