Dataframe 合并具有相同列数的两个数据帧

Dataframe 合并具有相同列数的两个数据帧,dataframe,apache-spark,pyspark,Dataframe,Apache Spark,Pyspark,我正在寻找一种无条件合并两个数据帧df1和df2的方法,知道df1和df2具有相同的长度,例如: df1: +--------+ |Index | +--------+ | 0| | 1| | 2| | 3| | 4| | 5| +--------+ df2 +--------+ |Value | +--------+ | a| | b| | c| | d| |

我正在寻找一种无条件合并两个数据帧df1和df2的方法,知道df1和df2具有相同的长度,例如:

df1:
+--------+
|Index   |
+--------+
|       0|
|       1|
|       2|
|       3|
|       4|
|       5|
+--------+

df2
+--------+
|Value   |
+--------+
|       a|
|       b|
|       c|
|       d|
|       e|
|       f|
+--------+
结果必须是:

+--------+---------+
|Index   | Value   |
+--------+---------+
|       0|        a|
|       1|        b|
|       2|        c|
|       3|        d|
|       4|        e|
|       5|        f|
+--------+---------+

谢谢

因为两个数据帧中的行数相同

from pyspark.sql import functions as F
from pyspark.sql.window import Window as W
_w1 = W.partitionBy('index')
_w2 = W.partitionBy('value')

Df1 = df1.withColumn('rn_no', F.row_number().over(_w1))

Df2 = df2.withColumn('rn_no', F.row_number().over(_w2))

Df_final = Df1.join(Df2, 'rn_no' , 'left')
Df_final = Df_final.drop('rn_no')

这里是@dsk和@anky提出的解决方案

from pyspark.sql import functions as F
from pyspark.sql.window import Window as W
rnum=F.row_number().over(W.orderBy(F.lit(0)))
Df1 = df1.withColumn('rn_no',rnum)
Df2 = df2.withColumn('rn_no',rnum)
DF= Df1.join(Df2, 'rn_no' , 'left')
DF= sjrDF.drop('rn_no')

我想这和熊猫不一样吧?我原以为你可以简单地说:

df_new=pd.DataFrame()
df_new['Index']=df1['Index']
df_new['Value']=df2['Value']

请注意,我已经有一段时间没有使用熊猫了。

你可以
加入
关于
行号()
谢谢你,我使用了这个指令:“df=df1.join(df2,how='internal')”,但它不起作用。你必须用
行号创建一个新列。
你能给我一个例子吗?@Sadek你能检查一下吗。。你也可以同意吗。。提前谢谢我们需要按上面所说的@anky订购窗户。当用他添加的指令编辑代码时,它终于起作用了。非常感谢。all@anky非常感谢你。我只是想说我没有看到你的评论。可能发生了什么事。不管怎样,我要把密码放进去。谢谢,我忘了。谢谢,对那些熟悉熊猫的人来说,熊猫真的很“简单”