我有两个具有数百列的表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()
答案 0 :(得分:0)
DataFrame比rdd快,而且您已经有了Dataframe,所以我很高兴:
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
答案 1 :(得分:0)
如果您有数据框,那么为什么要为此创建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)