我需要从一个配置单元表中读取数据,并将其插入另一个配置单位表中。两个表的架构是相同的。该表按日期进行分区;国每个分区的大小约为500MB。我想把这些数据插入一个新的表中,其中每个分区内的文件大约是128MB(即4个文件(
步骤1:从Spark中的源表中读取数据。
步骤2:按列(国家/地区、日期(重新分区,分区数为4。
df.repartition(4, col("country_code"), col("record_date"))
我每个country_code&record_date。
无论您在步骤2中做什么,都会将数据重新分区到内存中的4个分区,但如果您执行df.write.,则不会保存4个文件
为了做到这一点,你可以使用以下代码:
df.repartition(4, col("country_code"),col("record_date"))
.write
.partitionBy(col("country_code"),col("record_date"))
.mode(SaveMode.Append).saveAsTable("TableName")