Pyspark 使用内部联接的大型表的Spark For循环

Pyspark 使用内部联接的大型表的Spark For循环,pyspark,Pyspark,从两个现有表a和B创建一个新表,a有1年的历史数据,B有ID的数据。我需要使用Spark连接这两个表,在这两个表中,性能良好,并且每天或每月循环数据,因为business_day是分区。我不能考虑整个表格,因为每一个营业日都有3000万个。< /P> 表A-有n个列,如ID、营业日、名称 表B-有n个列-ID,ID\U代码 表A应该使用ID=ID连接表B,并与A的其他列一起获取ID_代码 insert into output_table select ID, ID_CODE,Business_D

从两个现有表a和B创建一个新表,a有1年的历史数据,B有ID的数据。我需要使用Spark连接这两个表,在这两个表中,性能良好,并且每天或每月循环数据,因为business_day是分区。我不能考虑整个表格,因为每一个营业日都有3000万个。< /P> 表A-有n个列,如ID、营业日、名称

表B-有n个列-ID,ID\U代码

表A应该使用ID=ID连接表B,并与A的其他列一起获取ID_代码

insert into output_table
select ID, ID_CODE,Business_Day, Name 
from A,B where 
A.ID=B.ID
我不知道如何为上面的循环编写,insert脚本可以工作,但一天需要2小时,我需要手动更改一年的工作日,这是不可能的,但是循环和其他性能步骤将帮助它运行得更快。

使用Python的Spark SQL Query

从pyspark导入SparkConf,SparkContext 从pyspark.sql导入SQLContext 作为pd进口熊猫 sc=SparkContextconf=SparkConf sqlContext=SQLContextsc 表A读取并创建数据帧->df_A df_A=sqlContext.createDataFrame。。。 表B读取并创建数据帧->df_B df_B=sqlContext.createDataFrame。。。 例子: df1=sqlContext.createDataFrame pd.DataFrame.from_记录 [ [1,12,“测试”], [2,22,'RD'] ], 列=['ID'、'ID_CODE'、'Departman'] df2=sqlContext.createDataFrame pd.DataFrame.from_记录 [ [1、‘星期五’、‘山’], [2、'friday'、'ramazan'], [3、'friday'、'bozkir'] ], 列=['ID','Business_Day','Name'] pyspark方法SQL df=df_A.joindf_B,df_B.ID==df_A.ID 。选择“识别码”、“营业日”、“姓名” sparksql方法 df1.RegisterEmptable'df_A' df2.RegisterEmptable'df_B' df=sqlContext.sql 选择标识码、营业日、名称 从…起 挑选* 从df_A左连接B.ID=A.ID上的df_B df 显示 [In]:df.show [Out]: +----+------+----+ |ID|U代码|营业日|名称| +----+------+----+ |12 |星期五|山| |22 |周五|拉马赞| +----+------+----+