pyspark RDD - 特定键上的左外连接

问题描述 投票:-3回答:2

我有两个表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()
apache-spark pyspark left-join rdd
2个回答
0
投票

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

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)
© www.soinside.com 2019 - 2024. All rights reserved.