Когда я запустил свой искровой код:
val sqlContext = spark.sqlContext
val noact_table = primaryDataProcessor.getTableData(sqlContext, zookeeper, tableName)
println("noact_table.rdd:"+noact_table.rdd.partitions.size)
val tmp = noact_table.rdd
println(tmp.partitions.size)
val out = tmp.map(x => x(0) + "," + x(1))
HdfsOperator.writeHdfsFile(out, "/tmp/test/push")
getTableData:
def getTableData(sqlContext: SQLContext, zkUrl: String, tableName: String): DataFrame = {
val tableData = sqlContext.read.format("org.apache.phoenix.spark")
.option("table", tableName)
.option("zkUrl", zkUrl).load()
tableData
}
Моя проблема состоит в том, что в таблице содержится около 2000 строк данных, но мой раздел приводит к 1
затем я продолжаю:
val push_res = cookieRdd.keyBy(_._2._2).join(tmp).map(x => (x._2._1._1, x._1, x._2._2._2, x._2._2._3, x._2._2._4, x._2._2._5, nexthour))
Мой cookierdd
раздел равен 96, а tmp
номер раздела равен 1, а затем число push_res
'раздел равен 1.Может ли кто-нибудь объяснить, почему это произошло?почему раздел tmp
и раздел push_res
равны 1?