在Spark中,可以通过不同的匹配级别进行连接,包括内连接、外连接、左连接和右连接。下面是使用Spark SQL进行连接的代码示例:
df1 = spark.createDataFrame([(1, 'John'), (2, 'Mike'), (3, 'Tom')], ['id', 'name'])
df2 = spark.createDataFrame([(1, 'New York'), (2, 'Chicago'), (4, 'Boston')], ['id', 'city'])
inner_join = df1.join(df2, on='id', how='inner')
inner_join.show()
输出:
+---+----+--------+
| id|name| city|
+---+----+--------+
| 1|John|New York|
| 2|Mike| Chicago|
+---+----+--------+
outer_join = df1.join(df2, on='id', how='outer')
outer_join.show()
输出:
+---+----+--------+
| id|name| city|
+---+----+--------+
| 1|John|New York|
| 2|Mike| Chicago|
| 3| Tom| null|
| 4|null| Boston|
+---+----+--------+
left_join = df1.join(df2, on='id', how='left')
left_join.show()
输出:
+---+----+--------+
| id|name| city|
+---+----+--------+
| 1|John|New York|
| 2|Mike| Chicago|
| 3| Tom| null|
+---+----+--------+
right_join = df1.join(df2, on='id', how='right')
right_join.show()
输出:
+---+----+--------+
| id|name| city|
+---+----+--------+
| 1|John|New York|
| 2|Mike| Chicago|
| 4|null| Boston|
+---+----+--------+
以上示例展示了如何使用不同的匹配级别进行Spark连接。在实际使用中,根据数据的需求和业务逻辑选择适当的连接方式。
上一篇:按不同偏移量循环不同的张量行
下一篇:按不同时间框架进行分组