问题描述
我正在从HiveContext提取数据并创建DataFrame。为了获得性能上的好处,我想在应用联接操作之前对DF进行分区。如何在“ ID”列上对数据进行分区,然后在“ ID”上应用Join
spark = SparkSession.builder.enableHiveSupport().getorCreate()
hiveCtx = HiveContext(spark)
df1 = hiveCtx.sql("select id,name,address from db.table1")
df2 = hiveCtx.sql("select id,marks from db.table2")
需要对数据执行以下操作
- 数据帧分区按“ ID”
- 通过“ ID”加入
解决方法
您可以使用重新分区。
根据您的数据大小,选择分区号。
df1= df1.repartition(7,"id")