我有两个表A和B,有几百列。我试图在两个表上应用左外连接,但它们都有不同的键。我创建了一个新的列,其中B中的相同键为A.然后能够应用左外连接。但是,如果我无法使列名一致,如何加入两个表?
这是我尝试过的:
a = spark.table('a').rdd
a = spark.table('a')
b = b.withColumn("acct_id",col("id"))
b = b.rdd
a.leftOuterJoin(b).collect()
DataFrames比rdd快,你已经有了数据帧,所以我建议:
a = spark.table('a')
b = spark.table('b').withColumn("acct_id",col("id"))
result = pd.merge(a, b, left_on='id', right_on='acct_id', how='left').rdd
如果您有数据框,那么为什么要为此创建rdd,是否有任何特定需求?
在数据帧上尝试以下命令 -
a.join(b, a.column_name==b.column_name, 'left').show()
您可以使用以下命令调查数据框
##Get column names of dataframe
a.columns
##Get column names with their datatype of dataframe
a.dtypes
##What is the type of object (eg. dataframe, rdd etc.)
type(a)