0
私はsparkとpythonを使っています。私は入力データセットを変換したいと思います。私が望む私はこのデータフレーム(出力データセット)を持っていると思いdictをスパークマップ出力に変換する方法
私の入力データセット(RDD)
-------------------------------------------------------------
| id | var |
-------------------------------------------------------------
| 1 |"[{index: 1, value: 200}, {index: 2, value: A}, ...]" |
| 2 |"[{index: 1, value: 140}, {index: 2, value: C}, ...]" |
| .. | ... |
-------------------------------------------------------------
は
----------------------
| id | index | value |
----------------------
| 1 | 1 | 200 |
| 1 | 2 | A |
| 1 | ... | ... |
| 2 | 1 | 140 |
| 2 | 2 | C |
| ...| ... | ... |
----------------------
私はマップ機能
def process(row):
my_dict = {}
for item in row['value']:
my_dict['id'] = row['id']
my_dict['index'] = item['index']
my_dict['value'] = item['value']
return my_dict
を作成私のプロセス関数を次のようにマップする:
output_rdd = input_rdd.map(process)
これは、この方法(または簡単な方法)で可能ですか?
[PySparkで平坦化RDDに複雑なRDDの変換]の可能複製(http://stackoverflow.com/questions/41632030/converting-complex-rdd-to-をa-flatten-rdd-with-pyspark) – eliasah
その答えをありがとう。私の問題は少し異なります。ネストされたフィールドがあり、列の選択は特定の条件の下で行われます。しかし、この投稿は私に応答に答える最初の場所を与えてくれます。 – Raouf
だから私はそれを共有している。 – eliasah