【发布时间】:2015-10-10 16:35:48
【问题描述】:
我需要从 Dataframe 中删除空分区
我们有两个 Dataframe,都是使用 sqlContext 创建的。数据帧的构造和组合如下
import org.apache.spark.sql.{SQLContext}
val sqlContext = new SQLContext(sc)
// Loading Dataframe 1
val csv1 = "s3n://xxxxx:xxxxxx@xxxx/xxx.csv"
val csv1DF = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").load(csv1)
// Loading Dataframe 2
val csv2 = "s3n://xxxxx:xxxxxx@xxxx/xxx.csv"
val csv2DF = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").load(csv1)
// Combining dataframes
val combinedDF = csv1.
join(csv2 csv1("column_1") === csv2("column_2"))
现在combinedDF的分区数是200。 从here发现我们使用join时默认的分区数是200。
在某些情况下,dataframe/csv 并不大,并且会出现许多空分区,这会导致代码的后面部分出现问题。
那么我怎样才能删除这些创建的空分区呢?
【问题讨论】:
-
你可以
repartition你的数据框。 -
我需要为重新分区提供什么尺寸?
-
@user52045 对于重新分区,我必须提供新的分区大小。但是在运行时很难找到完美的尺寸。对我来说,我认为只需删除空分区就可以了。
标签: apache-spark apache-spark-sql spark-dataframe