从另一个数据框创建组合数据框

时间:2018-07-31 10:15:39

标签: python-3.x apache-spark pyspark apache-spark-sql

我有一个类似于以下内容的数据框:

q  =sc.parallelize([Row(items=[1]), Row(items=[2]), Row(items=[2, 1]), Row(items=[5]), Row(items=[5, 2]), Row(items=[5, 2, 1]), Row(items=[5, 1]), Row(items=[3]), Row(items=[3, 5]), Row(items=[3, 5, 2]), Row(items=[3, 5, 2, 1]), Row(items=[3, 5, 1]), Row(items=[3, 2]), Row(items=[3, 2, 1]), Row(items=[3, 1])])

我需要创建一个包含所有项目组合的新数据框:

+------------+--------------+
|       left | right
+------------+---------------
|         [1]|[2]
|         [1]|[2, 1]
|         [1]|[5]
|         [1]|[5,2]
|         [1]|[5,2,1]
|         [1]|[5,1]
|         [1]|[3]
|         [1]|[3,5]
|         [1]|[3, 5, 2]
|         [1]|[3, 5, 2, 1]
|         [1]|[3,5,1]
|         [1]|[3,2]
|         [1]|[3,2,1]
|         [1]|[3, 1]|
|         [2]|[1]
|         [2]|[2,1]
...
+------------+

我需要创建一个类似上面的数据框

1 个答案:

答案 0 :(得分:0)

尝试使用crossJoin方法:

q.crossJoin(q)

应该可以解决问题。