私は、出力は正確にその形式であることが必要であるか厳格わからないんだけど、次はあなたに、ほぼすべての方法のを取得する必要があります。
使用pysparkのデータフレーム:
>>> employee = spark.createDataFrame([(31, ['Raffery', 31, 'a', 'b']), (33, ['Jones', 33, '1', 'b']), (32, ['Heisenberg', 33, 'a', 'b'])], ["id_e", "list_e"])
>>> employee.show()
+----+----------------------+
|id_e|list_e |
+----+----------------------+
|31 |[Raffery, 31, a, b] |
|33 |[Jones, 33, 1, b] |
|32 |[Heisenberg, 33, a, b]|
+----+----------------------+
>>> department = spark.createDataFrame([(31, ['Raffery', 31, 'c', 'b']), (33, ['Jones', 33, 'a', 'b']), (34, ['Heisenberg', 33, 'a', 'b'])], ["id_d", "list_d"])
>>> department.show()
+----+----------------------+
|id_d|list_d |
+----+----------------------+
|31 |[Raffery, 31, c, b] |
|33 |[Jones, 33, a, b] |
|34 |[Heisenberg, 33, a, b]|
+----+----------------------+
は、何にこれらの参加します
>>> joined.rdd.map(lambda row: (row.id_e, [i for i in range(4) if row.list_d[i] != row.list_e[i]])).collect()
[(31, [2]), (33, [2])]
:
>>> joined = employee.join(department, employee.id_e == department.id_d)
>>> joined.show()
+----+-------------------+----+-------------------+
|id_e| list_e|id_d| list_d|
+----+-------------------+----+-------------------+
| 31|[Raffery, 31, a, b]| 31|[Raffery, 31, c, b]|
| 33| [Jones, 33, 1, b]| 33| [Jones, 33, a, b]|
+----+-------------------+----+-------------------+
が次にデータフレームの間で共有されていない要素のユーザーリストのインデックスをマッピングする:私はユーザIDであり、仮定します
あなたの道に幸運をもたらすことを望みますように。