私はDataFrameを持っていて、その列の1つにJSONという文字列が含まれています。これまでのところ、JavaRDD.map
メソッドの必要に応じて、Function<Row,Row>()
のようにFunction
インターフェイスを実装しました。この関数の中で、私はJSONを解析していて、追加の列がJSONの値から来た新しい行を作成しています。Spark Rowsの新しいスキーマの定義
オリジナルの行::私の関数を適用した後
+------+-----------------------------------+
| id | json |
+------+-----------------------------------+
| 1 | {"id":"abcd", "name":"dmux",...} |
+------------------------------------------+
:たとえば返さJavaRDDから新しいデータフレームを作成しようとしたとき
+------+----------+-----------+
| id | json_id | json_name |
+------+----------+-----------+
| 1 | abcd | dmux |
+-----------------+-----------+
は私がトラブルに実行していますよ。これらの新しい行があるので、私はスキーマを作成する必要があります。スキーマはJSONの構造に大きく依存しているので、スキーマデータを関数から戻して、オブジェクトと一緒に渡す方法を見つけようとしています。 SparkContextが関数に渡されないので、私はbroadcast
の変数を使うことができません。
Function
の呼び出し元の行の各列をループする以外に、どのようなオプションがありますか?
David、私は現在、CallerメソッドでStructTypeを使用していますが、JSF内で追加のStructFieldがどのようになるか分かりません。 – dmux
'JSON'スキーマは行ごとに同じですか?それはあなたが望むことをすることができないか、そうでなければあなたが望むことをすることができなかっ –
各行で同じですが、データフレームごとに異なる可能性があります。 – dmux