我有一个python列表(p_list
),其中0和1的元素与spark数据帧一样多,只有一列(所有元素都像:'imaj7felb438l6hk'
,....)
我正在尝试将此列表作为列添加到spark数据帧(df_cookie
)中。但没有关键。到目前为止我试过了:
1)将df_cookie
转换为rdd,不起作用,因为它非常大而且内存不足
2)将df_cookie
转换为pandas df,不起作用(原因与1相同))
3)将列表转换为新的数据帧,并使用monotonically_increasing_id()
获取公共密钥并链接两者。这也不起作用,因为我在每个数据帧中都有不同的ID。
有什么建议吗?
test_list = [i for i in range(cookie.count())]
res = spark.createDataFrame(test_list, IntegerType()).toDF('ind')
df_res = res.withColumn('row', monotonically_increasing_id())
df_res.show(5)
+---+---+
|ind|row|
+---+---+
| 0| 0|
| 1| 1|
| 2| 2|
| 3| 3|
| 4| 4|
+---+---+
df_cookie = cookie.withColumn('row', monotonically_increasing_id())
df_cookie.show(5)
+--------------------+-----------+
| cookie| row|
+--------------------+-----------+
| imaj7felb438l6hk|68719476736|
|hk3l641k5r1m2umv2...|68719476737|
| ims1arqgxczr6rfm|68719476738|
|2t4rlplypc1ks1hnf...|68719476739|
|17gpx1x3j5eq03dpw...|68719476740|
+--------------------+-----------+
期望的输出:
+--------------------+-----------+
| cookie| ind|
+--------------------+-----------+
| imaj7felb438l6hk| 0|
|hk3l641k5r1m2umv2...| 1|
| ims1arqgxczr6rfm| 2|
|2t4rlplypc1ks1hnf...| 3|
|17gpx1x3j5eq03dpw...| 4|
+--------------------+-----------+